Remove Indexer top level handling

- It doesn't make sense to handle indexing in a generic sense. If I want
  to have some form of external indexing, then I should have it simply
  handle processed submissions in a generic sense.
Move common RabbitMQ elements out to a role
Improve RabbitMQ for Router

- use common RabbitMQRole to handle configuration options (and defaults)

- Remove queueing configuration stuff from Service definition. That's
  just too specific.
Stop using connect_cached

- It's impossible to keep track of who is connected using the single
  dbh, so it's not possible to properly disconect it. It's better just
  to use individual dbh connections than share them.
Use AnyEvent to handle signals

- It's safer for the event loop to have anyevent handle the signals.
Create a full Consumer implementation

- This simplifies our code a bit
Merge branch 'feature/unify_rabbitmq' into develop
Renamed exchanges and routing keys
Switch to hash arguments for service process method
Handle service work completion via callbacks

- This allows us to be more flexible in the way we handle the work
  product or failures.
Proper handling
Emit submissions to RabbitMQ
Merge branch 'feature/generic_postprocessing' into develop
Merge branch 'release/postprocessing' into v1_fork