Use a regular expression to parse GCodes

This should parse parentheses correctly and handle (valid) gcodes such as
G1X2Y3, while before we were assuming spaces between tokens (which is wrong as
per the G-Code spec). This should fix req #333 in a clean and systematic way.
This is also a component for #343 (Marlin M114 response is in the form ok C:
X11Y22Z33E44, which we can parse with the same expression).
Cleanup gcoder.py a little bit
Remove newline matching from regexp
Store all layers, including ones with no movement

This is a first step towards using gcoder.GCode as a storage for print-time
gcode. Now all we need is a "gcode line id => (layer id, in-layer line id)"
mapping to be able to do the indirection.
Minor cleanup
Remove useless temp display update, since we already do it in recvcb
Implement coordinate tracking for manual moves (#343)

This change needs testing : M114 is unbuffered, and thus might break lookahead
for Marlin and results in laggy jogging. We need to see how bad this is and
find some smart way to do it (like to send the M114 only when the user stopped
clicking everywhere, by using some timer callbacks).
Cleanup and fix recvcb
Add lineno => (layer, layer_line) mapping to gcoder
Compute duration estimation across all actual layers for correctness

This also matters as those actual layers are what we will use for ETA
Cosmetic change to a translated string

This change is free as I already changed this string before pushing :)
Use a fixed-size deque for storing the log

deque is much better fitted than a simple Python list
Indeed, a standard Python list is stored as an array, and has to be reallocated
all the time, while a deque has very fast operation on both ends, and the fixed
size mode will automatically drop first element when pushing to a full deque.
Also it was crazy to store the whole log. Storing 10000 log lines seems decent
and shouldn't take way too much space (less than 512KB based on a quick
estimation).
This might fix #292 and #353.
Cleanup pronsole._do_load and parse gcode from there
Cleanup pronsole.py loading & some SD stuff
More translation strings for pronsole.py
Use a deque instead of a list to store hilighted lines

This might speed up Pronterface while printing.
Indeed, as we keep adding items we keep expanding the list and Python has to
move it all the time.
Cleanup a little bit gviz
Fix minor bug in gcoder which broke hilighting in gviz

When getting rid of the gcode line number (N**), we were not switching command
string to uppercase.
Merge branch 'experimental' of github.com:kliment/Printrun into experimental