ward_tree: return distances

Modified `ward_tree` to return distances for both the structured and unstructured versions,
useful to have when plotting the dendrogram with scipy.
atm the output of unstructured (scipy.cluster.ward) and structured versions are not consistent, the children are not sorted in the same way.

see below

``` python
import sklearn
import numpy as np
from sklearn.cluster.hierarchical import ward_tree

X = np.array([[1.43054825, -7.5693489],
                  [6.95887839, 6.82293382],
                  [2.87137846, -9.68248579],
                  [7.87974764, -6.05485803],
                  [8.24018364, -6.09495602],
                  [7.39020262, 8.54004355]])
connectivity = np.ones((6, 6))
out_unstructured = ward_tree(X)
out_structured = ward_tree(X, connectivity)

print(out_unstructured[0])
[[3 4]
 [1 5]
 [0 2]
 [6 8]
 [7 9]]

print(out_structured[0])
[[4 3]
 [5 1]
 [2 0]
 [8 6]
 [9 7]]
```