resolves issue #2

- eschewing package `is-arguments` in favor of the more flexible `type-of`, which will help the type checking.
- added support for `null` strategy.
- reduced lines of code in matching logic
- updated tests to show that `Array` and `null` strategies work; did not modify the non-strict tests
- added a test to assert that pseudoclasses work as strategies
- throws if you pass something weird as a strategy; added test. (if you start using strings as strategies, you've basically made a really complicated switch statement)