Modifications to Spout code to allow for metric registration

Fixes: #445
What do you mean by old metrics?

I worked through trying to remove the metrics as an explicit parameter to getSpout() and instead using the member function metricFactory to pass the metrics to RichStormSpout (in internal KafkaSpout). The issue is: we start with a SchemeSpout (from our source), then "wrap" it in several FlatMappedSchemeSpouts, adding on the transformations for flatMaps. Then we call registerMetrics on the "head" FlatMappedSchemeSpout wrapper, which creates a new FMSSpout with new metrics appended to metricFactory. We then need to pass these metrics back when unwrapping the spout when we call getSpout. We don't have a way of getting the metrics to the tail (i.e. source) spout when unwrapping during the getSpout call, since *it's* metricFactory is empty, so we need to explicitly pass them.

Does this make sense?