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
I thought this would solve the _ issue and on local testing I thought it did and pushed a little early to realize later that I still got the warning! don't really understand why that's happening since the reek gem says it does not warn for `_`