Remove ambiguous definition of 'republish'

We should document how migrated content is published when we get to it.
Merge pull request #33 from alphagov/remove_ambiguous_definition_of_update_type

Remove ambiguous definition of 'republish'
Upgrade to Rails 4.1 and Mongoid 4

This is the result of merging the output of `rails-api new content-store
--skip-active-record --skip-sprockets --skip-javascript
--skip-test-unit`
with all the changes we'd made to the app so far.
Update mongoid config for mongoid 4
Fix time accuracy issues in test.

`Time#iso8601` includes miliseconds, whereas `Time#as_json` doesn't,
which was causing these tests to fail.

It was also necessary to reload the item from the db to avoid a rounding
error due to a difference in precision between Ruby and Mongo.
Upgrade airbrake.

Makes the workaround in the placeholder initializer unnecessary.
Merge pull request #34 from alphagov/upgrade_the_things

Upgrade the things (Rails 4.1 and Mongoid 4)
Add Bunny gem.
Add queue_publisher.

Simple facade for a message queue connection which is initialised on app start,
connects to an exchange, and exposes a publish method.
Send message to queue on save/upsert.
Integration test for QueuePublisher.
QueuePublisher fixes.

* Rename publish method to send_message to avoid overloaded term.
* Extract connection into a method for easier overriding.
* Remove connected? method: allow exceptions to propagate if connection fails.
Add unit tests.
Moved message queue config to yaml file.

This enables overriding on deployment. Keys are the standard options for Bunny
(see http://rubybunny.info/articles/connecting.html) with the addition of
:exchange which defines the topic exchange to create for the queue publisher.
Ensure pre-existing exchange, persistent messages.
Remove test around non-existing exchange.

The desired behaviour (content-store does not create the exchange) is
now handled by rabbitmq permissions - the content_store is not allowed
to create exchanges
Add per-Rails.env sections to the rabbitmq config.

Also update the integration tests to use server-generated non-durable
queues.  This ensures that the tests are isolated from each other, and
that the queues are deleted after each test run.
Add task to watch the message queue messages
Don't persist the update_type attribute

Due to a 'helpful' feature in Mongoid, it you call `update_attributes`
with keys not defined as fields on the model, Mongoid will still persist
these into mongo for you.
Validate format of fields used in the routing_key