* A set implementation that is similar to the ES6 Set, but knows about CoreObjects.
* @param items Optional array or other .forEach()-implementing object with items to add.
* Checks whether an item is contained in the set.
* @param item The item to check.
* @return Is the item contained in the set?
* Adds an item to the set.
* @param item The item to add.
* @return The Set object.
* Removes an item from the set.
* @param item The item to remove.
* @return Has the item been deleted?
* Removes all items from the set.
* @param fn A callback function.
* Returns all items in the set as an array.
* Adds many items to the set at once.
* @param items An array or other iterable object with a .forEach() method.
* Checks whether an item can be converted to string in some form to be used as a key.
* @return Can the item be converted to key?
* the object inside the set.
* @param item The item to convert to key.
* @return The key as a string.