Spout to accept a metric registration function

This is needed for Summingbird platform-independent counters to work. We need to pass a function that registers the metrics with the StormStatProvider that the counters use.
change to be an def openHook(fn: => TopologyContext => Unit