Features/move enum set to libstd

Move EnumSet to libstd

This moves EnumSet into libstd and updates everything else in core that uses it.

This is the beginning of an attempt to fix #6085

Obviously, this will break any code that attempts to access `enum_set` as
`collections::enum_set`, requiring a simple update (What's the mechanism to
communicate that? ping @cwm to put it in This Week in Rust?)

Right now I've left it as multiple commits to make it easier to look over if there are
things I need to fix, I'll squash this if it's ok to merge.