expose internals of nurlize, modify how valid works

This makes it possible for users to muck around with resetting schemes and base
urls.
Add more tests

This more clearly illustrates the behavior of the libarary.
For better or worse.