Updated Selections to use roles

Renamed Solver_types to Sigs, split out CORE_MODEL and added SELECTIONS
type. This lets us use the same types in Selections and Solver.

This means we now support separate source and binary selections of the
same interface. An additional "source" attribute on the <selections>
element says whether the root selection is source or binary.

Bugfix: "0install select selections.xml" would always select a binary,
even if the original selections were source.