Implement version 2.0

**[IN PROGRESS]**

#29 requests a breaking change so I figured that would be a good opportunity to make a bunch of other breaking changes at the same time:

* Support for ES3 has been dropped, because it makes the implementation leaner.
* I dropped a few predicates from the interface because they were either difficult to do properly (`gitUrl`), simple negations of other predicates (`floatNumber`) or beyond the scope of a simple data-checking library (`email`).
* A new batch operation for has been added for arrays, `apply`, which is similar to `map`.
* A bunch of predicates have been renamed. `verify` has been renamed to `assert` (at long last), I'm pleased with that one.
* Some unit tests have removed as they were superfluous others have been added to shore up some gaps.
* I came very, very close to deleting `webUrl` entirely, but relented. I don't like that method very much.