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

@alasdairhodge can you review this please?
Why insist on going through the public interface to access the field? Just curious.