Added ignore for DS_Store on Mac.
Tests and Runner

Removed placeholder JUnit files, added a runner and playing with event
handling in the main window.
Inheritance vs composition

In order to have access to internal component state for more complex
operations, the base classes need to EXTEND the AWT or Swing components
- they can’t compose them and still have enough control for more
advanced operations later (like overriding protected methods to
short-circuit logic for performance reasons)

Also makes it more powerful for extenders to do more with the API.
Testing

Playing around with intercepting the events as early as humanly
possible - looks like to be in the EventDispatcher.