ENH: Removal of iohub KeyboardCharEvent +++

1) keyboard device now generates press and release events only

2) release event now includes duration and key_press_event_id fields

3) added 'char' field to keyboard events, as per iohub 2.0 changes plan.
a) char field only really used on Windows so far; holding unicode value
for key pressed. 'key' field changed to provide psychopy key mapping
equiv. On Linux and OSX, key field has not yet been changed, so it still

gives unicode value.

3) Added psychopy side iohub device event wrapper base class.
a) When iohub device is created, if there is a psychopy side device
wrapper, it is used instead of standard iohub client device. If none
exists, device logic is unchanged.
b) Implemented psychopy Keyboard device wrapper. Has similar methods as
getKeys and waitKeys, which return much simplier event structs. All per
iohub 2.0 change list agreed in spring. Only used on Windows so far.
Other OS's do not use wrapper yet. Will add as priority after change
backlog is cleared.
Merge branch 'master' of git://github.com/psychopy/psychopy
ENH: 2 missing files from last commit

initial files for psychopy side iohub device wrappers.
ENH: Update kb and mouse demos

so they run with iohub 2 related changes committed
ENH: Core iohub and device changes

In support of psychopy iohub device wrapper work in development.

+ removed old client.py
ENH: iohub server checks for psychopy process

Checks event 0.5 sec. If it is not found (based on pid), then iohub
server shuts down.
BF: Other iohub demo fixes for kb changes
ENH: iohub demo folder structure changes

- consistent subfolder structure
- no artificial distinctions between example types.
ENH: eyetracker updates ++

1) eyelink interface now supports proper initial setup / calibration
screen. Display of eye images is also now supported.

2) Removed use of createErrorResult from all devices.

3) Update with latest ioSync device Teensy 3.0/3.1 program and
associated iohub interface changes.
ENH: iosync device

Latest ioSync code (both teensy 3 software and iohub interface code)
BF: demo updated to work with kbevt.char
ENH: getEventsByType now supports custom filtering
ADD: iohub event filtering framework

Users can now write custom filters for iohub device events. Filters
accept an event stream as input, and can output 1 - n filtered event
streams. Out events must be one of the iohub device event types.
ADD: eye tracker sample parser

Uses iohub filtering event framework to create an eye tracker
independent event parser. Takes eye tracker sample events as input,
outputs a filtered version of the sample event stream that was used to
create the generated fixation, saccade, and blink events.

**** Event Parser is in very early stages of development and event
stream output should not be considered production quality at this time.
Merge pull request #657 from isolver/master

iohub 2.0 related changes to date