[WIP] Groom and optimize tests.

### Parse:
* Parsing tables automatically stored w.r.t `start`.

### Lex test:
* Rewrite and expand test of #8.

### Parse test:
* Fortify tests to check that parser preserves order of tokens in `list`s and `seq`s.
* Differentiate tests to avoid undetected errors in argument order of AST constructors.

### ParserDB:
* New class for caching parsers during unit tests.
* DRY other testfiles.
 
### Makefile:
* Create separate unit test script (`utest.sh`).
* Add target for cleaning auxiliary tables.

### misc:
* Replace `unittest` primitives with `sure` primitives.
* Skip tests using the `@unittest.skip` decorator.
* Fix some `pylint` warnings.
* Import `sure` at package level, as is recommended.
This logger is used internally during the construction of the parsing tables. If `start` is different than `program` then some states will be unreachable from this `start`, so `PLY` will produce tons of warnings. We are explicitly silencing this using a `logger` that silently drops each error it receives.

This practice is outlined in the PLY's documentation. Search for `NullLogger`.