Noticed when adding amending missing const qualifiers on interfaces. We can make use of std::move here to avoid potential allocation churn a little. While we're at it, we can implement EraseSet in terms of, well, Erase() and Set().