ADD: Ability for users to write event filters

Custom event filters can be added by users. No change to iohub package
needed.

A filter is associated with a device type, and specifies what event
types it wants.
The filter can then do whatever it wants and output new or modified
iohub events. The output events must be a valid existing iohub event
type, output in the correct list format for the given event type.

For example, this is being used to take in eye tracker samples and
output parsed eye events: fixations, saccades, blinks.