Delete deprecated message/message.rb file
Split up decoder into smaller methods, also invoking a block on each decoded field
Make an Encoder module patterned after the Decoder, extract encoding logic from Message instance
Extract class-level message field handling to a DSL module
Extract encoding/decoding logic to an encoding module that is then included in the message class
Convert from array based field storage to hash based, store extension fields in same bucket

Extension fields are now stored in the same bucket but we select them
out if you really want them. `get_field` returns only non-extension
fields based on tag or name. You can pass true as a second argument to
get any field regardless of extension or not (similar to passing true
to respond_to? to check for private methods). `get_extension_field`
returns only extension fields based on tag or name.
Remove instance level field getters, self.class ain't that far away
Rename module DSL::Fields to just Fields
Rename Encoding module to Serialization
Use uniq for all_fields, set isn't any faster
Add support for explicit class deprecations
Explicitly deprecate class methods on Enum
Mark aliased class methods as deprecated
Fix encoding and method visibility issues
Move decoder/encoder out of message namespace
Make the encoder a class so we can privatize methods
Use stream attr_reader in encoder instance
De-privatize class methods in Decoder (as it doesn't work that way)
Merge pull request #165 from localshred/bj/message-fields

Split message class into modules, use hash storage for fields