Added word alignment information for extracted rules.

In the extraction phase, word alignment info is written
to an output value together with provenance counts.
The word alignment is kept until the merge phase and written
to the HFiles. For extraction, feature computation and merging,
the alignment info is always kept as a MapReduce value rather than
key to preserve the structure of RuleWritable (3 fields: lhs, src and trg).
All alignments and counts are in the HFile. At retrieval time, any local
feature that takes into account these alignments can be computed.
For example, it's possible to keep the most frequent alignment or
all of them with their frequency.
I don't understand why we need these two new methods? Surely the alignments are passed in when the Extractor creates the rules? Why do we need to recompute them? Isn't this code duplication? At the very least there should be a comment stating the reasons why the alignments are being recomputed.