[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
Sorry for my late work.
I did it!

I thought that we should use `m_impl` and `XXX::Impl` instead of `m_ctx` and `XXX::PrivateContext` to show "we use Pimpl idiom" explicitly. But it is another topic in this topic. I'll create a new issue for it.