(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.