depend less on global state

This addresses everything in #4 and some minor other improvements.

- Removes the `.errors` global and instead introduces the new function `isValid`.
- Removes the `.silent` global and instead is always silent.
- Better stack traces. It removes two anonymous functions and throws directly from `TypesJS`.
- Error messages mimics the standard `TypeErrors` thrown by builtin functions.

All test passes and the documentation is updated. It's ready for `git pull` and `npm publish`.