Refactored romstruct construction.

Still not entirely happy with it. The from_whatever methods seem out of place
relative to the other classes in the file. But they do work, and it's cleaner
than the other way.