gcodeInterpreter upstream optimizations

This merges daid's optimizations to the Cura gcodeInterpreter into OctoPrint. A few changes were made to the OctoPrint interface. The new code is over twice as fast as before processing 2500 gcode lines per second on a 700MHz RaspberryPi.

 * The progressCallback() for files wasn't working, always reporting filePos = 0. I've fixed this as well as throttled the updates to once every 1000 lines instead of every line. That's still 2.5 updates per second for a low-powered Pi
 * I don't store the path points or layers any more because they're not used for OctoPrint anyway. It slows the process down and eats up memory so why waste it

This supersedes the pull request in #206 with better performance and keeps it more in line with the upstream version.