External Commands triggered on printing events

This commit adds code to trigger external system commands for print start, done, cancelled and z-height change events.  This addresses issues 87 and 22.  

(there is really only one commit, not five...I was fighting some formatting issues)