Add collections functionality

* Add COLLECTABLE constant
* Add pre_collect and post_collect hooks
* Set the Content-Type to JSON by default
* Update documentation
* Bump gem version