[MRG] ENH: Return distances option for linkage_trees

On the lines of https://github.com/scikit-learn/scikit-learn/pull/3158 . Also a micro optimization for the `ward_tree` option, by preallocating the distance array.
all right, but I always prefer writing the negative part first. ;)