Fix several minor linting problems that I missed due to disabled editor plugin.
Rewrote SubstringMatcher in terms of new TypeSafeMatcher
Fix: acceptingMatcher did not preserve the inner function’s return value.
Replace clumsy prototype inheritance with cleaner object inheritance
Primitive asserts test more specific
Use named functions for all matchers.
Use simpler pattern for matcher exports.
Merge branch 'better_type_system'
IsNotSpec: Attempt to improve readability