Improve extra-env-lang

Instead of using parse-type in all cases, just let the user
resolve Name-based types using `parse-type` manually. This works
much better in general, and is consistent with other base
environments.
Add more GUI types and use extra-env-lang

The "gui-env.rkt" file now defines a base type
environment corresponding to racket/gui/base. The
"gui.rkt" file exports a few extra things that have
contracts.