Allow re-definition at TR top-level

For code review.

This allows `define` to redefine variables at the top-level. Mainly I'm submitting this as a PR since I'm worried about soundness, but I couldn't think of any ways that this is more problematic than `set!` (and it should be less problematic anyway since  you can't redefine from an inner scope).