Hale serializer meeting Crichton functionality

This is an early commit for the new Hale serializer.  Released for comment.  It's here for feedback, but I am well aware that it needs substantial code cleanup.
Why not just do:
```ruby
[:type, :scope, :value, :multi]
```

Maybe it's my personal preference but I find that way much more concise and readable.