- Fix more errors in code generation
- Fix package definition rule
- Use per-file package declaration since its interpretation is
  more clear, especially for formatters
- Add package information to formatter
- Generate formatter template
- Only generate template if not present; this allows the user filling
  in the template
- Rename a local variable from formatter to codeFormatter to avoid
  confusion
- Change Formatter API since it needs to parse a String from a
  byte stream starting with an arbitrary offset
- Use byte[] instead of Byte[]
- Fix some errors in the Serializer logic
- Use long instead of Long
- Use int instead of byte to facilitate use
- Specify formatter class name as string or null if no formatter
  is used
- Rewrite serializer to use ByteBuffer. This simplified the code and
  make it work more or less. Serialization of Lists is still broken.
- Add support for formatter in the serialization framework
- Bitmask is a binary number so prefix with 0b
- Bitfields are specified starting with the highest bit
- Do not swap byte order of byte arrays; they are serialized in the
  specification order
- Formatters must work with ByteBuffer not byte array
- Readjust more the Formatter interface
- Store count references in VariableProps; this is necessary for
  deserialization