event/binding: Major refactor

In this patch:

- Adds type parameter for EventSupport, no longer supporting 'weird'
  signatures on event handlers;
- Discards the implementation classes for a lot of the binding package;
- Moves GenericBinding interface requirements into that class, of which
  FluentBinding is now a subclass;
- Updates unit tests to take account of these changes.