Allow a UsageListener (i.e. for metering info) to be registered

@alasdairhodge can you review this please?
It was for another test to sub-class it, so that the `getMutableEvents()` returns a `static` events field. Thus we could test the instance that was created reflectively (whose class was defined in `brooklyn.properties`).

I've changed this for the static instance to just record a reference to the listener instances, rather than relying on `getMutableEvents()`. The test-logic therefore doesn't leak into the other class as much.