Fix missing event checks.

Summary:
So turns out I missed the most important checks in the static binder; the check for the event type and the check for the event filter.  This meant the first binding always matched and handled the event.

Wrote some new unit tests so this doesn't happen again.

Test Plan: N/A, just review the code.

Reviewers: Sabre070

Reviewed By: Sabre070

Maniphest Tasks: T111

Differential Revision: http://code.redpointsoftware.com.au/D86