Created some starter tests to just see how Snap.js can be tested.
Dramatically changed the structure of Snap.js to be more testable.