Only use native types for boolean, integer and double, and check the form for integer and double

Uses the regexes from the XMLSchema Datatypes 1.1 spec, except for removing the +-INF and NaN support for double to ensure they are typed and not JSON Natives.

Also adds the type for booleans that have a non-matching lexical type, as specified in JSON-LD API spec section 10.4 part 2.4.2