Add EventfulList and EventfulDict trait types.

**Lots** of useful applications in Widgets.

The events are designed to catch all of the modifying methods of the list and dict objects.  The following methods exist to register handlers:

EventfulDict members:
- on_add
- on_del
- on_set

EventfulList members:
- on_insert
- on_del
- on_set
- on_reverse
- on_sort
Is there a sensible way to define the callbacks inside the class? They presumably can't be registered until instantiation. Maybe there should be a method call that you can pass all your callbacks to in one go, like:

```
a.x.on_events(handle_insert, handle_del, handle_set, handle_reverse, handle_sort)
```