Initialize indexes and constraints on startup

- does not look like multiple calls to neo4j to create the same index
  harm it, but should make sure no extra work is being done
- went with reflective/annotation approach...might be a bit
  overengineered
- refactored