i don't know how much better or worse either one is really, but i think
i like to_array() better overall. guessing to_array() is probably a bit
better overall, as it should only be one allocation in all cases
get rid of the generalized traits that the read/write methods were
located in. now those methods are just located directly in the struct
impl itself
also cleaned up quest bin/dat errors
added validation checks in quest bin/dat reading