Fix formatting of some code blocks in pdf docs

Code blocks apparently need to be surrounded by whitespace to be output
correctly when generating pdfs
Support arbitrary stdout/stderr/logger handles

This will allow capturing of common things like logging messages, stdout prints
(using stdio println), and failure messages (printed to stderr).  Any new prints
added to libstd should be funneled through these task handles to allow capture
as well.

Additionally, this commit redirects logging back through a `Logger` trait so the
log level can be usefully consumed by an arbitrary logger.

This commit also introduces methods to set the task-local stdout handles:

* std::io::stdio::set_stdout
* std::io::stdio::set_stderr
* std::io::logging::set_logger

These methods all return the previous logger just in case it needs to be used
for inspection.

I plan on using this infrastructure for extra::test soon, but we don't quite
have the primitives that I'd like to use for it, so it doesn't migrate
extra::test at this time.

Closes #6369
mk: Fix formatting of docs.mk
Added in Clone/TotalEq/TotalOrd/ToStr traits to all parts of btree.
Equals is now compact and uses vec's equals method.  Cmp compares
all elements on branches and leaves (Nodes).
doc: Update style of index, organization and trim out some excess.
Add Pointer tutorial, rename borrowed pointer tutorial.
doc: Fix tests in pointer guide
std::rt: require known stack bounds for all tasks.

We just approximate with a 1 or 2 MB stack for native::start.
auto merge of #11350 : kchmck/rust/fix-pdf-glitches, r=alexcrichton

I was reading through the tutorial and manual pdfs and noticed some of the code blocks have glitches in their formatting:

![](http://i.imgur.com/9HXZ4dW.png)
![](http://i.imgur.com/Ds2By6j.png)

Putting empty lines around the blocks fixes this. I did a search through the other markdown files and made the change there as well.
Remove trailing whitespace
Make CFG_LIBDIR configurable. Fixes #5223
auto merge of #11353 : alexcrichton/rust/improve-logging, r=brson

This will allow capturing of common things like logging messages, stdout prints
(using stdio println), and failure messages (printed to stderr).  Any new prints
added to libstd should be funneled through these task handles to allow capture
as well.

Additionally, this commit redirects logging back through a `Logger` trait so the
log level can be usefully consumed by an arbitrary logger.

This commit also introduces methods to set the task-local stdout handles:

* std::io::stdio::set_stdout
* std::io::stdio::set_stderr
* std::io::logging::set_logger

These methods all return the previous logger just in case it needs to be used
for inspection.

I plan on using this infrastructure for extra::test soon, but we don't quite
have the primitives that I'd like to use for it, so it doesn't migrate
extra::test at this time.

Closes #6369
auto merge of #11263 : niftynif/rust/btree, r=catamorphism

Apologies for junking up the feed with all of these separate pull requests.  I'm still getting the hang of git and will hopefully be doing less of this nonsense soon.  I opened up another PR and closed the one from earlier today because the first PR was coming from the wrong branch of my repo.
Anyway, this contains a fleshed-out implementation of TotalEq/TotalOrd/Clone/ToStr for the whole B-tree structure and relevant tests, integrating suggestions and comments from several community members.
r? @catamorphism
auto merge of #11045 : jhasse/rust/patch-libdir, r=alexcrichton

See https://github.com/mozilla/rust/issues/5223#issuecomment-30455086
auto merge of #11364 : brson/rust/docs, r=alexcrichton

This reorganizes the documentation index to be more focused on the in-tree docs, and to clean up the style, and it also adds @steveklabnik's pointer guide.
Renamed Option::map_default and mutate_default to map_or and mutate_or_set
Remove unnecessary substitution of type params when generating
vtable methods before translating the ref to the method itself.
libextra: Introduce typed arenas.

A typed arena is a type of arena that can only allocate objects of one
type. It is 3x faster than the existing arena and 13x faster than malloc
on Mac.
librustc: Move block contexts into per-function arenas, and
stack-allocate function contexts.
doc: Syntax highlight the cheatsheet