rustdoc: Show macros in documentation

Any macro tagged with #[macro_export] will be showed in the documentation for
that module. This also documents all the existing macros inside of std::macros.

Closes #3163
cc #5605
Closes #9954
rustdoc: Highlight methods jumped to

This helps figure out where you actually jumped to, especially if the thing you
jumped to is at the very bottom of the page.

Closes #9905
rustdoc: Fix json output and input

Turns out a hash map with integer keys isn't serializable to json.

Closes #10115
rustdoc: Clickable links on methods themselves

Useful for getting the link to a method or function.

Closes #10332
rustdoc: Handle links to reexported items

When building up our path cache, we don't plaster over a path which was
previously inserted. Reexports are always lifting an item up the module
hierarchy, so we're guaranteed to hit the reexport before we hit the item
itself, so we only accepting the first one should do the trick.

Closes #11678