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.
Talked about this offline, but to get it into the record--my pattern here would be to not make it private at all, but move it to the class:

```ruby
  self.class.get_field_by_type(params)
...
def self.get_field_by_type(params)
```
Which is something I picked up from Rails. It can admittedly get weird, though, since it leads to quasi-exposing methods you didn't mean to expose. Your pattern definitely has merits.