bootstrap: support for `Integer_literal_compatible

For use by the compiler, for user-defined types that want to use number
literals.
bootstrap: support for 'newtype' directive

Writing

	newtype Meters = Float

defines a new type 'meters' along with:

	Meters fun From_float x:Float = this
	Meters fun Float = Float

for converting the new type back and forth with its underlying type.

All the functions and methods on the underlying type are effectively
inherited, replacing all instances of 'this' or 'final' in their
prototype by the new type.

cprinter essentially ignores all of this and prints "Float" whenever
"Meters" shows up. For the convenience of interacting in N from C,
typedefs are defined:

	typedef Float Meters;
	typedef Float* _$Nref_Meters;

But do note that in N, newtype is a not a typedef. The equivalent of a
typedef is an 'alias' in N.