Fixes part of MAHOUT-1155.

https://issues.apache.org/jira/browse/MAHOUT-1155

Modifying Centroid is now part of MAHOUT-1202.
Part of MAHOUT-1202.

Makes DoubleFunction and DoubleDoubleFunction abstract classes and adds method for a function class that can speedup vector operations that check if a function has certain properties (is associative/commutative etc.)
Forgot LanczosSolver update.
Extended OrderedIntDoubleMapping to support merging and zero values.
Simplified and (mostly) improved the performance of assign() and aggregate().
Turned off fasterThanBefore test.
Merge branch 'MAHOUT-1202' into trunk
Fixes part of https://issues.apache.org/jira/browse/MAHOUT-1156
Moved RandomProjector.
Fixes MAHOUT-1156

Adding Searcher, UpdatableSearcher abstract classes defining what a
nearest-neighbor searcher does.

The following implementations are available in the o.a.m.math.neighborhood
package:
- BruteSearch
- ProjectionSearch
- FastProjectionSearch

Additionally there are 2 new abstract classes available:
- Searcher
- UpdatableSearcher



git-svn-id: https://svn.apache.org/repos/asf/mahout/trunk@1479307 13f79535-47bb-0310-9956-ffa450edef68
Merged in changes MAHOUT-1156.
Merge branch 'trunk' into vector

Conflicts:
	core/pom.xml
	core/src/main/java/org/apache/mahout/math/neighborhood/FastProjectionSearch.java
	core/src/main/java/org/apache/mahout/math/neighborhood/ProjectionSearch.java
	core/src/test/java/org/apache/mahout/math/neighborhood/SearchQualityTest.java
	core/src/test/java/org/apache/mahout/math/neighborhood/SearchSanityTest.java
Minor changes, mostly style.