Refactor representation of bounds to separate out BuiltinBounds into
its own type. Use a bitset to represent built-in bounds. There
are several places in the language where only builtin bounds (aka kinds)
will be accepted, e.g. on closures, destructor type parameters perhaps,
and on trait types.
rustc: Add EnumSet tests
vec.rs: add each2_mut function
add: testsuite vec.rs each2_mut function
add: vec.rs each2_mut comment