close a vulnerability where HashMap::from_iter wasn't being randomized

While `HashMap::new` and `HashMap::with_capacity` were being initialized with a random `SipHasher`, it turns out that `HashMap::from_iter` was just using the default instance of `SipHasher`, which wasn't randomized. This closes that bug, and also inlines some important methods.
Hm I think I see. Otherwise `FromIterator` could only return a `HashMap<K, V, SipHasher>`... That is a bit unfortunate.