Initial commit for hierarchical clustering

First the distance matrix is calculated and then clusters
are joined to bigger clusters based on the precomputed
distance matrix.
Rearchitecturing hierarchical clustering

Merge strategies are introduced and Hierarchical clusterer simply
passes the documents to the merge strategy and iteratively calls
getNextMerge() untill only one cluster remains.

Complexity of single_link, complete_link and group_average
is also changed from O(n^3) to O(n^2*logn).

TODO: add better tests, especially for group_average
Added dendrogram visualization
BUGFIX: Forgot to divide by the sum in order to get the average
First attempt to use SplHeap for heap_linkage
Comment additions to heap_linkage

Changed the child classes to use the distance matrix
directly and not through the heap.

Added MatrixHeap to the repository.
Removed associative heap from util

HeapLinkage now depends on MatrixHeap and not associative heap.
Comment additions in merge strategies
Merge branch 'spl-heap-linkage' into hierarchical-clustering
Merge branch 'master' into hierarchical-clustering

Transition to psr-0

Conflicts:
	autoloader.php
Merge branch 'hierarchical-clustering'