Refactor URL formatting code into its own module.

I've been attempting to implement `Show` for Iron's custom URL type, and I want to avoid duplicating all of `rust-url`'s formatting code.

I've made two formatters publicly available in their own module, for URL paths and userinfo (usernames + passwords). This should allow people writing their own extensions to `rust-url` to implement `Show` for their types.

I wasn't quite sure where to put the tests, but they seem quite happy in a little sub-module. I figured the `tests` module was better suited to parsing/library tests.

Related: https://github.com/iron/iron/issues/130