Created some starter tests to just see how Snap.js can be tested.
Dramatically changed the structure of Snap.js to be more testable.
Have most things ported over to the new architecture.