RF: add file name extension to localization/mappings.txt

- might help auto-add to the manifest?
FF: adjustments for MANIFEST.in to pick up a couple files
BF: MonitorCenter.py handle notes == None
DOC: Remove tooltip non-functional suggestion

The tooltip previously gave an example of using 'randint(5)' as an argument to the row selection field in the loop dialog. This would actually lead to an error:
TypeError: range() integer end argument expected, got numpy.float64.
numpy.randint() does return an integer so not sure why this error arises, but removing the suggestion from the tooltip in the interim.
Merge branch 'master' of git://github.com/psychopy/psychopy
ENH: Start of iohub2 keyboard changes for Linux
BF: TextBox stim log warning if no fonts found
More work on linux iohub 2 keyboard events.

- improved shift / caps lock mod state detection
- consolodated keyboard logic within pyXHook
BF: Removed wx.SimpleApp usage. wx3 now required
linux iohub kb state progress
Upstr. Pull and conflict fix for iohub.util.dialog
BF: TextBox does not load if no mono fonts
ENH: iohub keyboard changes almost done on win
 First iohub test case ! ;)

Not sure if I am doing everything needed so that it will run when the
other psychopy tests are run or not. pls let me know.
BF: typo in eyelink device class +

worked on trying to get rid of the error seen on win64 when wx3  + iohub
is imported:

runtime error R6031
- Attempt to initialize the CRT more than once.
This indicates a bug in your application.

Online posts suggest it could be from the windows LLHook for kb or mouse
events not being closed. Not sure that is the issue here though.
Linux iohub keyboard event changes almost done now (I hope!)

Trying to make values across OSs used for 'same' key have the same value
in iohub. keyboard event.key will use the unshipped / modified value of
any keys that are non control keys or number pad keys. This makes the
transition of key values to other keyboard layouts / laguages /much/
mmore seemless. So if ';' is pressed, the evt.key value will also be
';', regardless of whether shift is also being pressed or not. evt.char
can be used when you want to factor in how modifier state effects the
key. So in this example, the evt.key = ':' when shift key is also being
pressed.

For non visiible keys, like home, up, return, etc, the evt.key and
evt.char values will in general be the same.

For numlock related keys, evt.key are not effected by numlock  state,
while evt.char is effected by the numlock modifier.

This will really clean up the keyboard key values used, and also make it
much easier for people to use any visible character key without needing
to remember what the key str label is. They just press the key and they
have the value needed to filter key events etc.
Fix to bug found by test_launch script. ;)
iohub test script now checks that ioub can be imported

if not, test is not run.
iohub KB device running on Linux

Alpha version for Linux of the updated device interface and event field
changes. TOTALLY INCOMPATIBLE with previous versions of iohub. ;(
ENH: Ability to save xlib event deatils on linux os

Can now tell iohub to save the xlib event details that are used to
generate iohub kb and mouse events to a log file. This option
is set in the iohub/default_config.yaml:

# If True, OS level kb and mouse event details that iohub uses to
# generate associated device events will be logged. Only supported by
# linux right now. File is saved to experiment script folder,
# with name x11_events_{0}.log,
# where {0} = datetime.datetime.now().strftime("%Y_%m_%d_%H_%M")
log_raw_kb_mouse_events: False

Idea (meaning not yet implemented) is that this can be enabled to create
kb and mouse event sequences that can later be used to feed fake events
to iohub for keyboard and mouse event creation test cases.