Rename Mongo to MongoMixin.
Sort imports alphabetically.
Add TickGenerator.

TickGenerator is a self-typed trait that must be mixed into Actor. It sends a
Tick message to itself with the specified interval.

The internal of TickGenerator is a bit complex because of the limitation that a
self typed trait cannot call the super methods of the mixed trait. But
TickGenerator must be able to call super.postStop() of Actor to correctly stop
generating ticks.

To circumvent this limitation, TickGenerator is made to extend PostStopCaller
trait that has only one abstract method named postStop. By overriding postStop
with an abstract modifier, we can now call the super method of postStop() in
TickGenerator. Because it is still an abstract method, the class which mixes-in
TickGenerator must implement postStop. This is no problem because TickGenerator
is a self typed trait of Actor whose postStop method is always provided.
Make ZooKeeperLauncher use TickGenerator.

Currently ZooKeeperLauncher uses their own tick scheduler. This patch
makes ZooKeeperLauncher use TickGenerator instead of their own tick
scheduler.
Make MongoDBLauncher use TickGenerator.

Currently MongoDBLauncher uses their own tick scheduler. This patch makes
MongoDBLauncher use TickGenerator instead of their own tick
scheduler.
Make SystemMetricsSupervisor use the execution context of Akka instead of Play.
Make SystemMetricsSupervisor use TickGenerator.

Currently SystemMetricsSupervisor uses their own tick scheduler. This
patch makes SystemMetricsSupervisor use TickGenerator instead of
their own tick scheduler.
Extract TimeoutFilter to seperate file.
Add NumberOfRequestsPerSecond.

NumberOfRequestsPerSecond has two variables, front count and back count.
The getNumberOfRequestsPerSecond method returns front count, and the
increase method increases back count. Every second it updates front
count and initialize back count.
So increase method doesn't increase the result of counter immediately.

There are two mechanisms to get the number of requests.
 1. Call getNumberOfRequestsPerSecond method
 2. Listen a Notification
Register MBeans on server start.

Currently a sigar mbean is registered when SystemMetricsMonitor starts.
Registering mbean each time the actor restarts seems not a good idea,
because mbean server has a same life cycle with JVM. This patch makes
beyond server register sigar mbean on start.

And this patch also makes server register NumberOfRequestsPerSecondMBean
too.
Extract creating JMXConnector to trait.

Currently SystemMetricsMonitor creates JMXConnector on preStart.
This patch extracts creating JMXConnector to JMXConnectorMixin. After
this patch the class who wants to use JMXConnector can use member
variable named jmxConnector with JMXConnectorMixin.
Add RequestCounter.

RequestCounter is an actor. This actor has a MBean proxy of
NumberOfRequestsPerSecond. When this actor receives an Increment
message, it calls increment method of the proxy.
Add RequestsCountFilter.

RequestsCountFilter is a global filter. It should be on the first in
WithFilters to count all requests, because filters are applied in the
order.
Refactoring SystemMetricsMonitor.

Currently, MBeans are initialized on preStart and create Receive with
the MBeans.
But there is no needs to do it, MBeans can be initialized on
constructor. And this way makes receiver more simple, because receiver
can use MBeans as a member variable.
Make SystemMetricsSupervisor monitor the number of reqests.

Currently SystemMetricsSupervisor monitors system loads and memory
usages, and writes them to database per 10 seconds.
This patch makes SystemMetricsSupervisor also monitor the number of requests
per second.