[server][plugin][gate][JSON] Add an AMQP and JSON based arm plugin

It just outputs received message and its content type for now. You can
push a message by the following Ruby script:

    #!/usr/bin/env ruby

    require "bunny"
    require "json"

    server_id = 4 # CHANGE ME

    connection = Bunny.new
    connection.start

    channel = connection.create_channel
    queue = channel.queue("hatohol.gate.#{server_id}")
    queue.publish(JSON.generate({"XXX" => "YYY"}),
                  :content_type => "application/json")
    connection.close

It requires AMQP 0-9-1 supported AMQP broker such as RabbitMQ. And it
also requires librabbitmq library that is a C implementation of AMQP.

TODO:

  * Add API to register hosts
  * Add API to register events
[TravisCI][server] Install librabbitmq-dev

Because AMQPConsumer depends on it. Should we make it optional?
[server][AMQPConsumer] Add "const" to follow this project style

Pointed out by Kazuhiro Yamato. Thanks!!!
[server] Don't require librabbitmq
[server][AMQPConsumer] Add TODO comment for an advanced feature

We will implement reconnect feature in the future.
[server][ArmPluginGateJSON] Use Pimpl idiom

Suggested by Kazuhiro Yamato. Thanks!!!
Merge pull request #306 from project-hatohol/plugin-gate-json

[server][plugin][gate][JSON] Add an AMQP and JSON based arm plugin