Adds support for working with URL Paths

It is sometimes useful to parse just the path portion of a URL (path,
query string and fragment) rather than the entire URL.
Fix staticlib outputs linking to blank archives

When creating a staticlib, it unzips all static archives it finds and then
inserts the files manually into the output file. This process is done through
`ar`, and `ar` doesn't like if you specify you want to add files and you don't
give it any files.

This case arose whenever you linked to an archive that didn't have any contents
or all of the contents were filtered out. This just involved ignoring the case
where the number of inputs we have is 0, because we don't have any files to add
anyway.
Fix bug with zero-length filemaps and rename bytepos_to_local_charpos to bytepos_to_charpos.
Fix typo in test metric ratchet stdout output
auto merge of #12379 : alexcrichton/rust/fix-ar-thing, r=brson

When creating a staticlib, it unzips all static archives it finds and then
inserts the files manually into the output file. This process is done through
`ar`, and `ar` doesn't like if you specify you want to add files and you don't
give it any files.

This case arose whenever you linked to an archive that didn't have any contents
or all of the contents were filtered out. This just involved ignoring the case
where the number of inputs we have is 0, because we don't have any files to add
anyway.
rustc: support dumping the AST as JSON

This is mostly useful for working on rustc, when one is unfamiliar with the
AST a particular construct will produce. It's a -Z flag as it's very much for
debugging.

Closes #10485
auto merge of #11904 : nick29581/rust/0filemap, r=alexcrichton
auto merge of #12231 : wycats/rust/url_path_parse, r=alexcrichton

It is sometimes useful to parse just the path portion of a URL (path,
query string and fragment) rather than the entire URL.

In theory I could have made Url embed a Path, but that would be a
breaking change and I assume that Servo uses this API. I would be
happy to update the PR to embed Path in Url if that's what people
wanted.
auto merge of #12389 : zr40/rust/fix-test-metric-typo, r=alexcrichton
auto merge of #12387 : cmr/rust/ast-json, r=alexcrichton

See the commits