Gideon : Implemented a new type of labelsubstitutionfeature
for the combination of a rule - as identified by its labels and whether its gaps are monotone
or inverted (rules with only one gap are considered monotone)
and the substituted labels for those gaps.
This is a more sparse, more specific variant of the basic label substitution feature,
which fires for every susbsitution of one used label for one rule (gap) label.

We added ListUtil.java to store the frequently used stringList methods -
which basically produce different types of Strings from lists of Strings or other objects.

	modified:   src/joshua/decoder/ff/LabelSubstitutionFF.java
	new file:   src/joshua/util/ListUtil.java