Added tests of new observable list and dict ops, and a missing method in DictAdapter, data_changed_directly(). Renamed similar methods with _directly(). Added convenience get methods for selection.
Made RecordingObservableList and Dict classes event dispatchers, and changed them to use Python list and dict wrappers, UserList and IterableUserDict, respectively. Improved and simplified op recording and dispatching.