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
Merge remote-tracking branch 'upstream/master' into devel
A very simple API endpoint for loading and printing files direct. This is by default turned off and it "allowed" via the settings

From within Slic3r adding a post-processing script .bat containing

c:\curl\curl "http://192.168.0.7:5000/api/load?apikey=D96FA6A216CB44F78705D4506689D0EC&print=true" -F file=@%*
simple change so the url loads from http or https whichever is in use
Forgot to simplify the success after testing
First try at SD card support
Proper uploading incl. drag-n-drop for both local storage and SD card
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.
Reset SD file data when disconnecting or when losing/regaining connection to the backend
Use M26 to reset SD position to 0 when cancelling and restarting a print, preprocess gcode before sending to printer
Properly switch between file and sd printing
Bug Fixes for Event Manager
Always send all lower case filenames to the printer for sd card commands