Simplify ast model.

Before we had:
Expressions -> Lists -> Expressions -> Atoms

Replace expressions with arrays. We have one top-level array
to represent the list of expressions in the program, then
lists contain an array of enclosed expressions. Add
tests helpers to make it easier to build these structures
in tests.
Naive implementation for first 2 car tests

Only runs for top-level lists
OBEY THE LAW OF CAR.

car is only defined for non-empty lists
Fix undefined variable in parser.

Broke in 2dffa5779d8da81f3870121d9723516466520375
car for nested lists.
Run tests in order.

I don't suck, honest, but the tests build up from simpler
to more complex so it's useful to have them ordered so the
more fundamental breakages can be fixed first.
Recursively parse expressions.