Merge pull request #8 from DaveAckley/master

Ugh, giant horrible monolithic flag-day commit, with changes
Event Windows don't effect tile counting, instead use Tile.PlaceAtom .
Separated ElementType into its own header. Nearly done separating elements into their own tiles
ElementTable reports function overwriting. Still working on separating elements from the table.
Finally separated an element from the table
Added element_sorter.h and element_res.h
Added element_consumer.h and element_emitter.h
Small drive-by speed tweaks in p1atom::op=
Use THE_INSTANCE in all cases for the element instances; let the class name distinguish.  Easier, e.g., to macro out later.
Added basic AEPS tracking to the mfmsim driver. Visible through statistics panel.
Merge remote-tracking branch 'upstream/master'
Removed diffuse bias. Added methods to Element class.
Point picking redone, see Element::FillPointWithType. Keeps caches clean when used.
Merge remote-tracking branch 'upstream/master'
Allow 'make clean;DEBUG=1 make' to build everything at -g2; 'make clean;make' to go back to -O99
Upping FRAMES_PER_SECOND to 100 seems to improve AEPS..  Not sure if it makes sense though.
Add support for a range of color scales and gradients; with some minimal tests
Use a couple of the new colormaps for sorter and data heat maps