Disallow creation of arrays of voids
Change kindIs* -> is*. Add test for void arg types
Remove comments about illegal types from test
Add type.getCanonical and Type.equals
Add FunctionProto.canCallWith and tests
Check record constructor args.

Record name must be null or string
Record fields must be array of Field
Fix bad Records in test_type.js
Check Record fields for correct types
Check record isUnion arg
Check CV values in type contsructors
Add test for valid "kind"

Looks like this already throws if the kind can't be found when
generating the spelling.
Add test for bad pointee
Add test for enum with bad tag

Also refactored to use same check for Record, Field.
Add FunctionProto resultType type test
Add FunctionProto argTypes type test

Add checkArray function to quickly check for array, and element type.
Add {,Incomplete}Array test for elementType
Add Array type test for arraySize

Also refactor to use new checkNonnegativeNumber function