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.