WBEventsMixin

breaking up the PR

- [x] make all specs pass
- [x] refactor events to pass linting/complexity checks (delete all old code, like we did for WBDeferred)

### later
- [ ] delete lib/events.. combine it with the mixin