Merge pull request #19 from DaveAckley/master

Merge with button stuff, add point symmetries, fix Grid::PlaceAtom
Buttons now resize with screen correctly
Turned Button into AbstractButton. Example in mfmsim's main.cpp
Further abstraction of buttons using AbstractDriverButton.
Further abstraction of AbstractDriverButton, added original buttons to mfmsim
Added res directory for runtime resources. Makefile changes to accomodate.
Created directory for resources, res. Makevar for default res directory, which the MFM responds to.
Slightly better xray catching logic. Buttons are more responsive.
Resolve conflicts (Panel commit part 1)
Our own rectangle.  Maybe not worth it; we'll see. (Panel commit part 2)
A multilocation resource locator.  And a font cache that uses it. (Panel commit part 3)
Fail code NOT_FOUND. (Panel commit part 4)
Point convenience routines Clear(), IsZero, max, min. (Panel commit part 5)
Somewhat general drawable panel (Panel commit part 6)
Make AbstractButton a Panel (Panel commit part 7)
Reinvent Drawing as a GraphicsContext-like thing (Panel commit part 8)
GridPanel not yet ready for prime time.  Clean up misplaces AtomicLong (Panel commit part 9)
Convert GridRenderer to Drawing-based.  Inline TileRenderer (Panel commit part 10)
Convert StatsRenderer to Drawing-based.  (.h already in?) (Panel commit part 11)
Convert TileRenderer to Drawing-based. (Panel commit part 12)