Started making changes to LabelSubstitutionFF in order to add
smoothing features to be used for double labels.

  modified:   src/joshua/decoder/ff/LabelSubstitutionFF.java
Reformatting commit - changed format  src/joshua/decoder/ff/LabelSubstitutionFF.java
to comply with Joshua formatting conventions
Adapted LabelSubstitutionFF to support double-labeled nonterminals.

The double labeled nonterminals are consisting of two parts separated
by a designated label separator (currently "<<>>").
The new feature labelsubstitutiondoublelabel is created by a refinement
of the LabelSubstitutionFF class. A new list
List<LabelSubstitutionLabelSmoother> labelSmoothersList
is used to create different "smoothings" of labels, either leaving the label as is
or removing either the first or last part of it. These smoothed versions of the labels
serve to allow the tuner to learn automatically the right label substitution features
at the right level of granularity.

Also adapted the FeatureFunctionTest to test the new feature in a very basic standard way i.e.
just seeing if it actually leads to (dynamically generated) new features that change the weights.

       modified:   src/joshua/decoder/Decoder.java
       modified:   src/joshua/decoder/chart_parser/NonterminalMatcher.java
       modified:   src/joshua/decoder/ff/LabelSubstitutionFF.java
       modified:   test/joshua/decoder/FeatureFunctionsTest.java
       modified:   test/joshua/decoder/SoftSyntacticConstraintDecodingTest.java