Initial implementation of lang.WildcardType
Support wildcard types in `Type::forName()`
QA: Simplify array and map type creation inside forName()
QA: Declare members
Use substr_compare() instead of actually creating substrings
Before: Time taken: 1.971 seconds
After:  Time taken: 1.883 seconds
QA: Update coding standards
Implement Type::newInstance()
Implement Primitive::newInstance()
Implement ArrayType::newInstance() and ArrayType::cast()
Disallow creating arrays from maps
Implement MapType::newInstance() and MapType::cast()
Always raise lang.ClassCastExceptions from cast() regardless of type
Introduce "default" member
Test VAR and VOID defaults
Use null for VOID type default as described in RFC
QA: Simplify is()
Disallow coercion from arrays and maps to primitives
Support all lang.types.Number instances
Implement WildcardType::newInstance() and WildcardType::cast()
Also test ungeneric types with WildcardType::isAssignableFrom()