FIX: Don't rewrite urls to be absolute, if they are a URI with a protocol

This is determined in this fix by the existence of a colon ':', to show the uri has a protocol.

I've updated unit tests, and done my best to check against the RFC spec: http://tools.ietf.org/html/rfc3986

Related commit: b6fc1d314ee31627e8ba42d7324ea45a97b48fa5

I do think URIs need a bit more thought in general for framework to satisfy edge cases, such as use of "foo/bar/../../blah."