Convert more modules to use extra-env-lang
Fix type for `get-directory`
Add support for contracted base type env bindings

This allows identifiers in the base type environment
to already have contracts from elsewhere. This commit
also changes how the types for racket/draw bindings
are registered to use the new system.
Fix a GUI function type