Use protocol for serializing models to hal
More documentation
More work on extracting the protocol
Protol should probably only provide dedicated methods
All methods identified and extracted
More power to the helper
Update documentation
Rename Hal.serialize to Hal.encode
Extract hal into lib folder
Move monad and sanitize also into lib subdir