1) Add 'autoLog' attribute to TextBox like other psychopy stim types have.

2) Add support for following color formats:
    * dkl
    * hsv
    * lms

3) Add support for user 'marking up' text for textbox, specifying which fontstim
    (from available preloaded fontstims ) should be used for each character of the
    text. i.e. user can format different parts of text differently, using the 
    set of defined fontstim's. 

4) Consider saving fontatlas array and glyph set / font char -> atlas region
    dictionary to file system. Then, if user defines a fontstim in a future 
    experiment session that matches what is defined in an available fontatlas file
    (the fontatlas file(s) must be in known file location(s)), load it from
    dist instead of doing all the python logic to rebuild it in memory. 
    Should speed up reloading of previously used fontstim's.  

5) Allow size of textbox to be determined by the maximum char cell size and
    max number of chars that will be used in experiment. So size of textbox
    would not be specified in textbox constructor, similar to current TextStim.
    perhaps allow user to specify the 'wrap_width' (in stim units) and if max 
    text length * cell_width > wrap_width, add extra rows. Likewise, height of 
    each row of text will be determined by max cell height and line spacing 
    attribute.  

6) Document TextBox class methods etc.

7) Use properties for setting / getting public attributes instead of setters
    and getters. 

8) Document differences between TextStim and TextBoxStim.

9) Look into improving initial textstim init and first draw() call time.
    Can currently take 2-3 sec for only one fontstim type. Initial load time is 
    about 1 - 2 seconds per TTF file loaded.!

10) NOTE: TextBox relies on knowing possible font setting combinations before
    first call to .draw() is made. This means users can *not* set individual 
    font related attributes (like .setFontSize(), .setFontColor(), etc.) 
    with the textbox stim. Instead, see #6 for what is possible. 
    TODO: List attributes of textBox that *can* be changed during experiment runtime.
    ( like position, alignment, border color / stroke width, textgrid cell
    line grid color and stroke width, others??)

-) DONE: Support specifying 3 or 4 element colors when given as a list, 
   where 4th element is alpha for that color (4 element color lists are 
   already supported). TODO: If a color has len(3) or is a str, 
   then use opacity value of stim to set alpha for the color.

3-) DONE: Add support for associating several FontStims with a TextBox. User should be
    able to change the 'default' fontstim being used by the textbox by setting it
    with a textstim_label that has previously been defined.
