Clean up serialization

This does a number of things:
  * Adds a header to serialized data (to make version checking sane).
  * Removes the duplicate deserialization for `worldedit.deserialize` and `worldedit.allocate`.
  * Optimizes `worldedit.deserialize` by only deserializing the data once.
  * Includes a cleaner version of #59 (make some fields optional).
  * Cleans up the comments and a little of the code style.
  * Partially breaks the API for some functions (probably not a big deal since I don't know of any external mods that use the API).
  * Probably a few other things that I've forgotten.