Reimplement CGI and URI modules for loading speed

Simply requiring "cgi" takes ~4 ms, while "uri" can take ~18 ms on Ruby
2.0.0, because loading either module results in Ruby interpreter having
to parse a huge amount of code, most of which is not needed for our
purposes.

For instance, we only use `CGI.escape` and `CGI.unescape`, and this
change provides a small replacement module that loads fast.

This also provides a lightweight URI::HTTP replacement that's able to
parse simple URLs. For the purpose of representing URLs of git remote
and handling API communication, this should be enough.