More appropriate function names and documentation.

Plain `fromSets` seems inappropriate since the function does not work correctly unless the given sets are already disjoint, hence we express that requirement in the name.

`join` will become an illegal name when GHC finally re-organises the monad class. Now, since this module should probably be imported qualified it would still be ok,
but `Control.Monad.join` does something quite different from `Data.Partition.join`, so another name like `joinElems` is better.
Added "checked" `fromSets` function.

This one is less efficient than `fromDisjointSets`, but will also accept overlapping partition specifications (these will be merged).