Massive refactoring of Url, QueryString, and Request for RFC3986

TODO: ArrayCookieJar & tests are failing
Merge remote-tracking branch 'origin/master' into refactor-url
Remove query_prefix from Url parts
QueryString::$prefix is now completely unnecessary - removed
Request resource must always be an absolute path
Path for requests must always be absolute. Optimizing Url::__toString().
Fixes edge-cases in Url, QueryString, and Request

Falsy values (the string "0") are now handled properly

e.g. http://foo.com?0, http://foo.com#0
Merge pull request #227 from hobodave/refactor-url

Refactor URL implementation per RFC-3986