Make hashing work

Also equality
Add regression test
Better repr
Document the URIVariable API
Refactoring URIVariable

Split part of URIVariable.__init__ into post_parse
Break URIVariable out into its own file
Fix tests and imports
Fix URIVariable.post_parse
More tests and remove kruft
MORE TESTS