WIP
Changed naming of factory methods: withXxx -> hasXxx.
Made all constructors private.
(Re-)Added option for Selecting to match a single element.
Split Selecting into Selecting and SelectingFirst. Added a few unit tests. More needed for full coverage.