Minor changes to fix printer for wider boards
Code cleanup
Moved utility functions to a new file, to maintain modularity.
Added a unit-test system to ensure functions follow their spec.
Added position data structure and tests for it
Position tests added.
Minor update to make more effective use of the position object