(PUP-2857) Add a type for default expression called Default.

Before this change, the special value produced by a default expression
was treated as a Ruby['Symbol'] (later changed to Runtime['ruby',
'Symbol']). This commit changes this to produce an instance of a
new type called Default.

The Default type is an Any, but is not assignable to anything else.

This commit also includes improvements to the testing of undef.
We shouldn't be handling `:undef` here anymore now that `:undef` isn't used.