all 3 platforms have keyboard and mouse support

#29: inprogress:

- ucode (the ord of the unichr) field added to keyboard event
- key field == utf-8 encoded unicode character pressed, or a character
label for common non visible keys.
- windows  seems OK as a first pass test. Linux has issues with modifier
mappings; OSX has some issues with modifiers and also mapping of some
ucodes. All platforms, 'run' at least. ;)
- modifiers are stored as the logical & of processed modifier keys. When
the experiment process receives new keyboard event s from the server,
when they are converted from their internal list format to the
namedtuple, the modifiers field is turned into a list of modifier labels
based on the stored logical & info.
- keyfield is stored in the evnt list format as a utf-8 encoded byte
string.  When the experiment process receives new keyboard event s from
the server, when they are converted from their internal list format to
the namedtuple, the key field is converted into a unicode string by
decoding the byte string using utf-8 encoding.

#28: implemented in all 3 OSs.
Made filtering of auto repeat events an option that can be set in the
config file for the keyboard device. Default is to filter repeated press
events generated by the OS. Setting that can be added to config file to
control this is called
" report_auto_repeat_press_events " and can be True or False.

#30: in progress. About half of ujson usage has been removed.

# 31: in progress. Have not switched to weak refernces yet, but have so
far added some exception handling at points in code that should have had
it so that the ioserver process does not stop processing UDP requests
but still process device inputs. This has improved how often the orphans
server process will occur when you purposefully cause an exception to
occur. It is not elliminated. Also, on OSX it seems that almost every
time the ioHub server is terminated, the client times out waiting for
the process to shutdown and has to force fill it instead. I think that
the carbon event hooks are not being shut down correctly. Will
investigate.