Adds Listener support for usage/metering info
TypeCoercions: recursively unpack for List<T>

- e.g. if given “1,2” for type List<Integer>, then first pass will
  coerce to List.of(“1”, “2”), and second pass will coerce to
  List.of(1,2)
Read UsageListeners from config in brooklyn.properties
This closes #310