Initial work on a generic UriBuilder

Should allow extracting some boilerplate with metaprogramming magic.
With some work, it'll hopefully allow easy extension as well.
Wrap all components in classes, default is SimpleComponent
WIP Add some missing core components

No tests yet, but at least existing specs are passing. Need to think
carefully about testing strategy.
Add a missing component dependency
Simplify trivial case for component building

Usually, you just invoke the same thing on @uri. Documentation and/or
more sensible defaults are going to be necessary.
Some minor reformatting
Remove bin/

Not needed.
Minor bugfixes
Better pry console