New Feature: Signallable Pellets.
A new interface called Signallable (and an extenion to pellet called SignallablePellet) is created which is used by the user code to implement a signallable pellet.
A signal can then be sent to the pellet from anywhere as long as it can connect to the coordinator.

A command line tool is provided to send signals manually.
A thrift api is provided to send signals programatically.

Signals are handled in the same thread as data (not received in the same thread, just handled in the same thread) so that the user need not worry about synchronization/threading while handling the signal in the onSignal method.

Fixes #6