NEW: Doxygen theme refresh

See screenshots attached to the PR for example.
Merge pull request #2070 from primalmotion/doxygen-theme-refresh

NEW: Doxygen theme refresh [+3]
First round of changes to change theming system to use arrays and not bitmasks as their underlying datatype
Get jaking working
Handle null inputs for subtracting CPThemes.
Change CPTheme to be hash-backed to make it a bit faster
Fix bug when setting themeStates in a themeAttribute
Fix accidental semicolon
Change CPTheme implementation to fix how searching for a matching theme works
Fix subtracting theme states
Get all tests to pass
Clarify documentation for CPThemeState()
Some cleanup of CPSegmentedControl.j
Add note to ThemeState object about it being private
Fix bugs with CPThemeAttribute encoding and decoding
All ThemeStates always have at least one state - the normal state
Remove unused method in CPTheme
Fix bug that was turning dictionary keys into objects
Add new unit tests for CPView
Fix a small typo in CPTheme.j themestate caching