Move std::num::Integer to libnum
auto merge of #12326 : bjz/rust/integer, r=alexcrichton

This is part of the effort to simplify `std::num`, as tracked in issue #10387.
Move std::{trie, hashmap} to libcollections

These two containers are indeed collections, so their place is in
libcollections, not in libstd. There will always be a hash map as part of the
standard distribution of Rust, but by moving it out of the standard library it
makes libstd that much more portable to more platforms and environments.

This conveniently also removes the stuttering of 'std::hashmap::HashMap',
although 'collections::HashMap' is only one character shorter.