Faster set

This extracts the useful parts out of Dict and injects them into Set.  This appears to speed things and save some memory(about 10% in the code that I have tried).  I'm not sure if that speedup is worth the extra complexity.
I prefixed the method names copied from dict with an 's' (I possibly shouldn't have, and just let the dispatcher handle things.)