Fully proxy java.util.Set objects as Python sets

The remove method now throws a KeyError if the value to be removed is
not found in the set. Before this would follow Java semantics and
return a boolean if successful or not.

No changes were necessary in the standard library, perhaps indicating
that this is a rare assumption in user code.

Note that sets implementing SortedSet do not require hashing, but
instead assume that there is a total ordering function on the set
membership. The current test suite for testing set functionality,
test_set, as subclassed in test_set_jy makes the perfectly correct
assumption for CPython that hashability is required. This should be
revisited with respect to testing TreeSet and ConcurrentSkipListSet.

Fixes http://bugs.jython.org/issue2241