Rewrite the assembly pipeline.

This patch uses SmxBuilder from spcomp2 to replace the old assemble() pipeline. Instead of generating into an old AMX structure, and then decoding that into SMX, we now directly generate into SMX. This greatly simplifies code generation and file writing process. It should also be faster, since the old process needed many more passes.

 - Big endian and compact encoding handling is now removed.
 - The pc_openbin/writebin functions are removed.
 - There's a new MemoryBuffer class as a sane, simpler version of memfile.h.
 - Code generators now place cells directly into a cell stream, rather than writing to a memfile.
 - assemble() has been split into smaller functions.