Allow null compile-time bindings

This changes Environment to allow null bindings, intended
to reserve symbol locations at compile time. Its get()
method now returns undefined for unbound symbols. Relevant
bits have been updated to support this change.