Introduce a 'bind' function for constructing C ASTs.
Normalize the AST during construction.
Capture some invariants in the C AST type.

The RHS of a let binding cannot be another let binding.
Return is now only allowed in the final position.
Only globally-bound functions can be called.
Distinguish global functions from variables in the C AST types.
Pull out local variables as a separate type.
Name the type of C bindings (x = e).
Merge pull request #146 from yallop/generate-normal-form

Represent generated C code in normal form
Add a DEBUG makefile variable ('make DEBUG=true').
Merge pull request #147 from yallop/debug-flags

Add a DEBUG makefile variable (make DEBUG=true).
Introduce direct-mapping types for `string', `bytes' and `float array'.