Add observable collections
A common reason for subclassing/wrapping collections is because users want a signal for changes. For Gee, it's usual to see ObservableHashMap, ObservableArrayList, and ObservableHashSet as subclasses. I propose adding implementations that triggers a signal for element addition, deletion, and replacement. Current workarounds like observing the length properties do not provide granularity and do not account for replacements.