Event Filters and Watches

Implemented:
- SetEventFilter()
- GetEventFilter()
- AddEventWatch()
- DelEventWatch()
- FilterEvents()

I did something similar to what was done for the logging function. Added tests in events_test.go (you can run them with `go test -run Events* -v`).