Now using None=Nothing<typeof undefined> as a singleton instead of instantiating nothing every time.

- Allows us to do if (x === None) which is nice.
- Right now tsc infers that Nothing<typeof undefined> is Nothing<any> and assumes this is fine. This shouldn't really work, since Nothing<any> is a supertype for everything, not a subtype. Undefined, on the other hand, is properly a subtype of everything.