Allow access to the sets used for resolution

This will allow modification of sets used through the Lockfile.
Improve DependencyResolver::compose_sets behavior

Now ::compose_sets raises an exception for zero non-nil sets, returns
the only set given for one set and composes for more than one set.
Use improved ::compose_sets in RequestSet#resolve