Add debug info for boxes
Add debug info for vectors
Add debug info for bare_fn type
Prevent debug info generation of zero-span nodes

If a node has a (0, 0) span, it was not in the source, so debug symbols should not be generated for it.
Add debug info test for boxes
Add debug info test for vectors
xfail box and vec debug info tests
iterator: add skip and take
takewhile -> take_while, dropwhile -> skip_while
libcore: clarify documentation for char_at(_reverse)
auto merge of #5957 : huonw/rust/core-char-at-doc, r=thestinger

The documentation was unclear/wrong: it implies the functions operated on unicode char indices, but they actually operate on byte indices. Also, the `char_at_reverse` documentation was unclear whether it counted from the beginning or the end (causing #5956).
move iterator adaptor tests to iterator module
re-organize the iterator module a bit
libcore: add an UnfoldrIterator like Haskell's `unfoldr`
iterator: add a chain adaptor
iterator: add a bit of documentation
auto merge of #5955 : thestinger/rust/iterator, r=graydon
auto merge of #5824 : bleibig/rust/debuginfo, r=brson

This adds debugging symbol generation for boxes, bare functions, vectors, and strings, along with a tests for boxes and vectors.

Note that gdb will see them as their actual compiled representation with the refcount, tydesc, etc. fields, so if `b` refers to box, `b->boxed` will refer to its value. Also, since you seem to use the [C struct hack](http://c-faq.com/struct/structhack.html) for dynamic vectors, you won't be able to print out the whole vector at once, only one element at a time by indexing specific elements.
core::rt: Declare large parts of the I/O API
core: Add rt::context for figuring out what runtime services are available

Conflicts:
	src/libcore/rt/sched/mod.rs