Add goal types to quasiquotes.

A quasiquote expression can be given a goal type for the elaborator,
which helps with disambiguation. For instance, `(() : ()) quotes the
unit constructor, while `(() : Type) quotes the unit type.  Both goal
types and quasiquote are typechecked in the global environment.