Add a gen:custom-write and gen:equal+hash
Add pset-get-one/rest
fix documentation
Fix pset-remove so that pset's never contain empty partitions

This makes implementing pset-get-one/rest easier because dict-iterate-first
always returns an index to a non-empty partition.