Start adding navigation to the docs.
Always use provided allocator for allocation.
Unify code for ending compiler.

There's now a single code path for the end of a chunk of bytecode, so
we can eventually put code there for capturing closures.
Use char* instead of offsets for tokens.

Simplifies a bunch of code that works with token strings.
Get closures working!

In the process, I had to change the grammar. There is now a strong
separation between statements and expressions. The code was just wrong
before when it popped locals at the end of a block scope because there
could be temporaries on the stack if the block was in expression
position. This fixes that.

Still need to implement closing over `this`.
Include "include" directory in source code metrics.
Bunch more work on docs.