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
As you already said, the new default is to accept `['_']` for the [Uncommunicative Variable Name](https://github.com/troessner/reek/wiki/Uncommunicative-Variable-Name). But in the current `.reek.yml` this is still missing. You should just add it there.