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).