Guessing game explanation

We now build the game at the end of the first section.

I wanted to do it as we went along, but it's too hard with these fundamentals
not in place. The rest will do the 'as we go' approach, but I think this is
better.
repair macro docs

In f1ad425199b0d89dab275a8c8f6f29a73d316f70, I changed the handling
of macros, to prevent macro invocations from occurring in fully expanded
source. Instead, I added a side table. It contained only the
spans of the macros, because this was the only information required
in order to make macro export work.

However, librustdoc was also affected by this change, since it
extracts macro information in a similar way. As a result of the earlier
change, exported macros were no longer documented.

In order to repair this, I've adjusted the side table to contain whole
items, rather than just the spans.
rustc: Print a smaller hash on -v

The long hash just takes up space and you can discover the main hash through the
`rustc --version verbose` command.
rlibc: fix bug in `memcmp()`
rlibc: add unit tests
rustc: Make `monitor` public.

It's harder to run rustc correctly without it.
rustc: Extract --crate-type parsing to its own function

Helpful for users of rustc as a library.
rustc: Pass optional additional plugins to compile_input

This provides a way for clients of the rustc library to add
their own features to the pipeline.
rustc: Allow the crate linked to as 'std' to be customized

This adds the alt_std_name field to the Session's Options type.
I'm using this in an external tool to control which libraries
a crate links to.
Address review feedback
rustdoc: Add an --extern flag analagous to rustc's

This adds an `--extern` flag to `rustdoc` much like the compiler's to
specify the path where a given crate can be found.
Document Deque.
Move in-place functions below their iterator variants.
Place union as the first function, for consistency.
Group union, intersect and difference in Bitv.
Document Bitv.
Document BitvSet.
Move intersection above difference and symmetric_differance.

So all comes in the order union, intersection, difference and
symmetric_difference.
Main bitv example: prime sieve.
Enclose None as `None`.