std: Replace num::IntConvertible with {To,From}Primitive
syntax: Add #[deriving(FromPrimitive)] syntax extension

Right now this only works for c-style enums.
syntax: swap from .span_fatal to .span_err in #[deriving(FromPrimitive)]
test: add compile-fail test for #[deriving(FromPrimitive)]
std: Swap {To,From}Primitive to use the 64bit as the unimplemented version

One downside with this current implementation is that since BigInt's
default is now 64 bit, we can convert larger BigInt's to a primitive,
however the current implementation on 32 bit architectures does not
take advantage of this fact.
extra: Add ToBigInt and ToBigUint traits
std: check bounds for ints/uints in {To,From}Primitive
extra: Don't truncate {u64,i64} when converting to BigInts
std: fix some warnings
std: ToPrimitive's default impls should use `.to_*()`

This allows the default methods to be properly range checked.
std: add Primitive.is_signed
test: fix the tests for windows
extra: fix BigInt on 32bit machines