Disruptor queue metrics (#613)
* Added new metric type, 'StateMetric', to report direct metrics of anything that meets the IStatefulObject interface
* Added methods for population, capacity, and read/write head positions to Disruptor Queue; gave it a getState() to make it IStatefulObject
* Register the transfer queue and the send and receive queues for spouts and bolts.

We cheat and register the transfer queue in executor.clj because within a Java implementation of the bolt (specifically, the System bolt), we don't have access to the executor data -- we need a TopologyContext, which is only prepared for tasks. If there's a way to get this, please advise.