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.

### README:
* Expand resources.

### 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.
I think one of the points of sure is to make chaining look more like
English and be more readable (similar to e.g. jQuery chaining) and the
technicalities should be ignored, so parentheses needn't be used.
On Jul 26, 2014 3:30 AM, "Nick Korasidis" <notifications@github.com> wrote:

> In tests/test_parser.py:
>
> >          )
> >
> >      def _check_binary_operator(self, operator):
> >          expr = "1 %s 2" % operator
> >          parsed = self._parse(expr, "expr")
> > -        self.assertTrue(isinstance(parsed, ast.BinaryExpression))
> > -        self.assertEqual(parsed.operator, operator)
> > -        self.assertEqual(parsed.leftOperand, TestParser.one)
> > -        self.assertEqual(parsed.rightOperand, TestParser.two)
> > +        parsed.should.be.an(ast.BinaryExpression)
> > +        (parsed.operator).should.equal(operator)
> > +        (parsed.leftOperand).should.equal(self.one)
> > +        (parsed.rightOperand).should.equal(self.two)
>
> Indeed. I think it looks better this way, though, because the casual
> object syntax is separate from the sure syntax.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/dionyziz/llama/pull/54/files#r15430535>.
>