Implement Mappable class

TODO:

- [x] transfer initial code from jacebrowning/doorstop
- [x] remove `_data` and only use attributes in `yorm_attrs`