Breaking change: Do not allow "Name.keyword" as the name of a type/module.

This was never allowed in the spec.  However, we allowed it in our implementation.  This is likely
a very low risk as there was no way to ever codegen this properly.  For example, if you had:

	module A.void {
	}

then we'd have to codegen that as:

	var A;
	(function (A) {
		(function (void) {
		})(A.void || (A.void = {}));
		var void = A.void;
	})(A || (A = {}));

Now, we could potentially try to make this work through renaming 'void' to something like _void.  But
this seems like an incredibly esoteric case that isn't worth investing effort for.
Update parsing of types to match latest spec.