Implement BigInt and BigUint.
Move BigUint and BigDIgit to std::bigint.
Convert std::bigint to explicit self.
Impl Zero, One of BigInt, BigUint
Convert @[BigDigit] to ~[BigDigit]
Enhance auto_encode to take number of struct fields

emit_struct and read_struct takes an additional len:uint parameter which tells
us how many fields the struct we are working on has.

This is required to implement an Encoder for the msgpack [1] serialization
format. To serialize a struct with msgpack you have to use arrays and the size
of the array has to be know before each of the elements are written out. JSON
as an example doesn't have this problem as it uses '[' and ']' delimiters for
arrays.

[1]: www.msgpack.org
test: Fix a bunch of run-pass tests. rs=bustage
test: Fix test/run-pass/pipe-pingpong-bounded. rs=bustage
test: Fix test/run-pass/pipe-pingpong-proto. rs=bustage
test: Fix a couple more tests. rs=bustage
test: Fix test/run-pass/class-cast-to-trait-cross-crate-2. rs=fire
test: Fix test/run-pass-fulldeps/qquote.rs. rs=bustage
test: Fix a bunch of compile-fail tests. rs=bustage
test: Fix benchmarks. rs=rustbot
Remove spurious semicolons at the end of macro_rules! definitions.
When an import fails to resolve, make the error message say
which import it actually was. This makes debugging imports
like: use aa::{x, y, z} easier (for issue #2914).
Fix the build by removing trailing whitespace.
Simplify idents_to_str and use it in more places.
librustdoc: Fix a bunch of rustdoc tests. rs=bustage
librustdoc: Fix typo. rs=busted