Use generic impls for `Hash`

cc @alexcrichton. This is my last outstanding patch from the Hash migration. It adds generic hash impls for many of the stdlib types. We might want to wait until we turn `#[feature(default_type_params)];` permanently on though before we land this PR.