Adds HeartbeatGenerator and GovukExchange

For monitoring purposes, a heartbeat message is sent to the
published_documents exchange. These messages have a timestamp and the
hostname of the machine, along with a header of
"application/x-heartbeat".

This work is performed by the `HeartbeatGenerator` class.

This PR also adds `GovukExchange`, which tries to encapsulate how we
write to exchanges at the moment. It also allows for a shorter setup for
publishing messages, useful for Rake tasks or cron jobs.
Add hearbeat_messages:send Rake task
Add routing to heartbeat messages
Corrects rake job_type setup
Stop exchange name from being pushed to Bunny
Merge pull request #73 from alphagov/add-heartbeat-generator

Add heartbeat generator

https://www.pivotaltracker.com/story/show/82210230
Set explicit path for cron in schedule.rb
Merge pull request #74 from alphagov/set-explict-path-in-cron-schedule

Set explicit path for cron in schedule.rb
Update moped (Mongoid's mongo driver) to 2.0.1

This includes some fixes around the cluster reconnect behaviour, which
we hope will mean that it copes better with intermittent network issues,
and mongo re-elections.
Bump Rails to 4.1.7

Good to keep up to date.
Merge pull request #76 from alphagov/bump_rails

Bump Rails to 4.1.7
Merge pull request #75 from alphagov/update_moped

Update moped (Mongoid's mongo driver) to 2.0.1
Set routing key for heartbeat messages

The routing key needs to be part of the options passed to Bunny's
exchange.publish method, not part of the message body.  See
http://www.rubydoc.info/github/ruby-amqp/bunny/Bunny/Exchange#publish-instance_method

The publish options aren't all headers, so call them `message_options`
instead of `message_headers`.  Change signature of the
GovukExchange.publish method to match that of Bunny's Exchange.publish
method (by making it have a second parameter of options with a default
of {}, rather than a named parameter called headers which requires a
hash), for a less surprising API.

Also, add "persistent: false", to indicate that we don't require the
heartbeat to be persisted on failure (this is the default, but
specifying it explicitly informs future readers that this is a
deliberate choice, since we choose to have persistent: true for
non-heartbeat messages).
Merge pull request #77 from alphagov/fix-heartbeat-sending

Set routing key for heartbeat messages