PathReplacersMultiple: More tests
Add PathSelectorsReplacers

Some tests with both path part selectors and replacers.
StringListOperations: Fix selector after replacer behavior

* Jam forgets all already parsed path part replacer operations when
  encountering the first selector.
* Remove TO_PARENT_DIRECTORY from mask PATH_PART_REPLACER_MASK after
  all. It behaves kind like a replacer, but doesn't with respect to
  the first selector.
Leaf::_EvaluateVariableExpression(): Document jam deviation

We are more lenient with respect to how variable operations can be
formed, allowing parameter-less operations to be followed by a ':' to
separate the next operations.
VariableExpansionTest: Make more test to data based test

Add Multiply, StringOperations, Subscripts files to replace Simple(),
Operations(), Subscripts().
StringListOperations::Apply(): Fix E behavior for empty param

Unlike assumed before "$(empty:E=)" won't result in a list containing an
empty string, but in an empty list.
Leaf::_ParseSubscripts(): Emulate jam for invalid first subscript

The behavior probably isn't exactly the same yet, but it should be
closer.