truncate feature values to 5 decimals
sprinkle context.progress() liberally
Merge remote branch 'origin/unstable' into unstable

Conflicts:
	src/edu/jhu/thrax/hadoop/extraction/ExtractionMapper.java
Merge branch 'unstable' of github.com:jweese/thrax into unstable

Conflicts:
	src/edu/jhu/thrax/hadoop/extraction/ExtractionMapper.java
	src/edu/jhu/thrax/util/FormatUtils.java
bugfix: send Context to RuleExtractorFactory ctor
removed core extraction code

This will compile, but won't extract any rules, obviously.
made PhrasePair immutable

Also, removed Clonable interface from it, and removed method to see if
it is consistent with an alignment.

To add:
1) isInitialPhrasePair(Alignment, params)
2) disjointFrom(PhrasePair)
3) contains(PhrasePair)
replace Alignment class with interface

Note that this doesn't compile: the WordLexicalProbabilityCalculator
depends on being able to instantiate an Alignment, and I haven't written
the concrete implementation yet.
common base class for word-level lexprob jobs
only need one mapper for word lexprob calculator

We use a boolean sent in the job configuration to determine whether we
should be calculating p(e|f) or p(f|e)
use new mapper in tools to calcuate word lexprobs
make IntPair immutable
concrete implementation of Alignment using arrays

ArrayAlignment is the implementation. Also note that the interface
changed from returning an Iterable to returning an Iterator. There's
less syntactic sugar, but that's okay.
removed Rule tests
initial ArrayAlignment tests
more ArrayAlignment tests
even more ArrayAlignment tests
more tests for ArrayAlignment and a bugfix!

The iterator hits an out of bounds exception when checking for the next
element, but I've added a guard to avoid that.
PhrasePair: contains, isInitialPhrasePair
HierarchicalRule: initial implementation