num: Slightly optimize bigint
num: Migrate `~[T]` to `std::vec_ng::Vec`
auto merge of #12924 : Florob/rust/bigint, r=alexcrichton

This is a minor optimization of the bignum module. The improvements mostly come from avoiding allocations and boundary checks. This also switches all of libnum to vec_ng::Vec.
Add support for counting syntactic matches in a macro definition
Use Vec::with_capacity in the vec! macro