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.
If we're using lambdas can we be more explicit about calling them. I suggest:
```ruby
elemental_renderer(symbol).call(element)
```