Add support for indexes to Collections

Implement other indexes as well as the API to create and destroy them.

TODO
=====
- [x] Add support for hash indexes
- [ ] Add error messages on index constraint violations
- [ ] Add support for geo indexes
- [ ] Add support for skip list indexes
- [ ] Add support for full text indexes
- [ ] Update README.md
Not sure what I'm missing. We're testing the index delegation here. that's pretty much all. We have aceptance test for handling index errors. Don't think we need to unit test them. What am I missing?