ENH: Builder ExpSettings now supports blendMode=add/avg but the FBO isn't working correctly
BF: visual.py should have the openWindows list in its namespace
ENH: Builder timing now stops at t-win.monitorFramePeriod*0.75 rather than t

This should take into account the the final frame of a stimulus presentation
Components using duration(s) or stopTime(s) now check if there's "most of"
one frame remaining and continue to draw if there is.

Why 0.75 frames?:
 - if this is 1 frame then when we go over by a tiny fraction we'll stop drawing
   too early
 - 0.5 frames sounds like it would handle rounding up/down, but doesn't
   account for further drawing time. We could check beam pos, but not
   convinced that's necess
FF: blendMode='add' wasn't scaled correctly - needed adjustment to shaders
FF: in Builder, for blendMode='add' you also need useFBO=True
ENH: plaid demo should use blendMode='add'
REF: refactored convertToPix() to use a dict of functions (Sol's idea)

Should improved extensibility and reduces a potentially long if...elif sequence
ENH: added 'degFlat' and 'degPosFlat' units options for stimuli

These accomodate flat screens for both position and size/ori, or just
for position (centroid).

Also fixed bug in previous commit (private names rather than public)
DOCS: changelog
FF: forgot to import numpy for monitorunittools
FF: minor fixes to window to handle corner cases of new units and shaders code
FF: new buglet in window creation from Builder when units are not from prefs
DOCS: updated version ready for release
ENH: Builder moved info dialog stuff to Component Settings>BasicSettings

Also added documentation about data filename
FF: rewritten and tested deg2cm with support for flat-correction
FF: forgot to add numpy imports to handle new deg2cm with correctFlat=True
FF: still didn't get the import of numpy functions correct
DOCS: parallel port docs were breaking documentation build
FF: ElementArrayStim now handles new degFlat and degFlatPos units