"linkage() function mistakes distance matrix as observation vectors"

this is to handle issue # 2614 ( scipy#2614 )
"linkage() function mistakes distance matrix as observation vectors"
If input to linkage() is a 2-dimensional matrix, it is first checked by predicate is_valid_dm(). If it is a distance matrix, it is converted to condensed vector. Otherwise it is considered to be observation vectors and condensed distance matrix is calculated using pdist() function.
```python
if redundant_dm:
    dm = distance.squareform(X)
else:
    dm = distance.pdist(X, metric)
```
might be better.