ENH FIX Raise ValueError when the target does not match with classes arg

ENH Use np.searchsorted to find the index instead of cls2idx
TST Added NRT to test if ValueError is raised during target mismatch.

This test will be removed when a more general test is added.
ward_tree returns heights (distances) between the clusters
both for the structured and unstructured version. Useful for
plotting the dendrogram with scipy.
ENH: `ward_tree` returns distances

Returns distances for both structured and unstructured version,
and they are equal for both versions.

Added test under test_hierarchical.
changed xrange to range for compatibility with Python 3
TST, test ward_tree_distance on known dataset

- Solve PEP8 problems in test_ward_tree_distance and ward_tree
- Refactor return_height into return_distance for ward_tree.
- Test that structured and unstructured versions of ward_tree return the
  same distances on a known dataset.
- structured and unstructured versions return children with the same
  order
FIX: structured and unstructured ward_tree return children sorted in the
same way

Add test
Clean code for test_ward_tree_distance
Cosmetic change in test_hierarchical, better documentation
Add ENH description in whats_new.rst
Add better description of distances, cosmetic changes
Fix git rebase problems
Add forgotten IFs
ENH: Allow connectivity to be a callable in AgglomerativeClutering et.al
Remove support for int and update whatsnew.rst
Refactored LDA module (first working version).
Added LabelEncoder and updated most of the docstrings
Updated more docstrings
Return self in fit()
Use equal priors by default
Added simple LDA example