Remove the default option from hashes and handle it by constructing the default from the sub elements.

close #49 

* [x] move finding the default into the filters for better control
* [ ] rework hash to ignore the `:default` option and instead construct the default from its block
* [ ] update docs