Matlab shell escapes + fix ellipsis handling.

1. Added Matlab '!' shell escapes to the grammar.
2. Turns out Matlab doesn't pay attention to ellipses everywhere:
they're not special inside shell escapes or comments.  Fixed.
Support tildes + fix a context popping bug.
Reduce the number of pep8 codes ignored.

Some of them didn't seem to be necessary to ignore in the code I've been
writing lately.  I'm not sure why I had them ignored originally, but in
any case, it seems better to ignore as few as possible.
Started writing up coding conventions.
Added explanation of why I ignore some codes.
Formatting improvements.
Added mention of using the "noqa" comment.
Forgot to import pyparsing!
Conform to pep8 E302 (2 blank lines after imports).
Needless repetition in 1st 3 cases, so made 2 & 3 more useful.
Tried to make these more interesting and useful.
Adding back Harold's files valid_51/52/53.
Whatever I did with a previous merge must have been wrong, and
these got left out.  Adding them back in.
Random additional test cases.
Added a couple more variations on existing test files.
Changed to be a more canonical example.
Added spaces between operators, changed the variable names to be more
aligned with what is going on, and added a comment summarizing what
Matlab's ode45 function does.
Much improved.
Now offers arguments controlling some of the behavior, including the
ability to drop into the debugger when an exception occurs.  Plus,
made it conform to PEP8 standards, and added a file header.
Added missing file header.
Renamed field 'variables' with 'assignments'.
Turns out that we need to be able to store more than simple variable
assignments: assignments in Matlab can also involve such things as
cell arrays.  To make it more clear what's going on, I changed the
name of the field to something more general and added comments about
how it's intended to be used.
Trivial futzing with file header.
Massive overhaul.
This is vastly different from the previous iteration, with so many
changes it is impossible to enumerate them in detail.  Here are the
highlights:

1. Many parsing bugs fixed.

2. The new approach no longer uses the "tags" from the previous one,
and instead uses dictionaries to associate parse results with
interpretations.  A long comment near the beginning of the file
explains the principles.

3. There is a new function to print an annotated interpretation of the
parse results.  The output is a bit grungy but does serve the purpose
of letting humans check whether it parsed an input correctly.

4. New function make_formula() can take an expression (a subset of the
parse results that MatlabGrammar can produce) and return a string
representation.

5. Many more comments inside the file try to explain what's going on.