Added external system commands support for events

Print start, print end, print cancel, and Z  height change can now
trigger external system commands.  These are set in config.yaml and take
_FILE_, _PERCENT_, _LINES_ and _ZHEIGHT_  tokens to be passed to
external commands.

system_commands:
  cancelled: echo cancelled _FILE_ at _PROGRESS_
percent done.
  print_done: echo done with _FILE_
  print_started: echo
starting _FILE_
  z_change: echo _LINE_ _PROGRESS_ _ZHEIGHT_
Revert "Added external system commands support for events"

This reverts commit 3b66f63ff2d586898bb69e19d69ad08bf2991f88.
External commands on events

These changes address issues 87 and 22 by adding the ability to trigger
external commands on print start, done, cancel and z-height change.
Update README.md
Update README.md
Event Manager

Added event manager to trigger system and gcode commands.
Update README.md

Back out previous changes
Merge branch 'norpchen-master' into events

Conflicts:
	octoprint/server.py
	octoprint/settings.py
Started refactoring to match coding style and simplify things a bit.
Bug Fixes for Event Manager
redundant start event trigger removed
Merge branch 'norpchen-master' into events

Conflicts:
	octoprint/printer.py
Refactoring of event management
Updated documentation of events
Fixed jobData key
Merge branch 'sdcard' into events

Conflicts:
	octoprint/printer.py
	octoprint/server.py
	octoprint/util/comm.py
Brought up to date with sdcard branch
Hotfix for recent Flask/Werkzeug versions breaking Flask-Login module
Hopefully fixed a off-by-one error...
Merge branch 'devel' into events

Conflicts:
	octoprint/printer.py
	octoprint/server.py
	octoprint/util/comm.py