Allow selection predicates to contain subpredicates.

This also allows us to simplify the logic in Selection by
having it use a single "and" predicate. Relates #719.
Test selection of residue type.
Add basic set operations to Selection (union, intersection).
Add symmetric difference operation to Selections.
Add set difference to Selection. Closes #719.
Add note on set operations to Selection docs.