Use zope subscriber and events.

- Pave the way first by creating the event objects.
Lower more direct level testing of protocol views

- Ensure that the existing crufty way of doing events actaully work, so
  that events actually all work.