Message queue implementation

Put a message on the queue when content is created or updated.
we can do everything that is done in the initialiser here as well. it is better because environment specific configs go in the respective environment's file, so you don't need the initialiser just to do something based on which rails environment it is. you could, for example have:
```
# in production.rb
config.queue_publisher = QueuePublisher.new(connection_url: ENV['CONNECTION_URL'])

# in development.rb
config.queue_publisher = QueuePublisher.new(noop: true)

# in test.rb
config.queue_publisher = QueuePublisher.new(connection_url: "amqp://guest:guest@localhost:5672")
```