RFC: Collections reform

This is a combined *conventions* and *library stabilization* RFC. The goal is to establish a set of naming and signature conventions for `std::collections`.

The major components of the RFC include:

* Removing most of the traits in `collections`.

* A general proposal for solving the "equiv" problem, as well as improving `MaybeOwned`.

* Patterns for overloading on by-need values and predicates.

* Initial, forwards-compatible steps toward `Iterable`.

* A coherent set of API conventions across the full variety of collections.

*A big thank-you to @Gankro, who helped collect API information and worked through an initial pass of some of the proposals here.*

[Rendered](https://github.com/aturon/rfcs/blob/collections-conventions/active/0000-collections-conventions.md)
I considered moving the various set operations to the iterator level. Indeed, this is how they're implemented in some -- but not all -- cases. So it's partly a question of whether we want to be able to provide specialized implementations (although trait specialization, if it happens, may eventually help there.)

In any case, it might be worth doing some tests to see whether we can get away with generic combinators, as that would be in line with the overall design goals of this RFC.