Create new, pure js validator that is faster

On example data I downloaded, Joi runs in 2484 milliseconds.  Joy runs in 38 milliseconds and I believe it is verifying the same stuff.

@jebeck @nicolashery Give this a once over and make sure you believe it's verifying the same stuff as well.

I veered off from the Joi API in a couple places.  The biggest is that I assumed that things are generally required and if they are optional, that should be pointed out.  Joi does it the other way and forces you to specify what is required.
This isn't sufficient. `isFinite("5")` -> `true`

(I had the Joi option {convert: false} set to prevent this kind of behavior.)