Use a custom URI joining method, since Ruby's sucks

Refs: #129, #130, #131

Ruby's native `URI.join` method will strip any leading paths from the joining
URI, meaning users working behind a proxy get stuck. In other words:

    URI.join('http://localhost/jenkins', 'foo') #=> 'http://localhost/foo'

Notice that the `jenkins` is dropped? Whoever thought that was a good API?

This commit adds a new method, +uri_join+ on the helper class, that
intelligently joins n-parts of a URL, URI-escaping each element for safety,
and returning a normalized URI.