ENH: Use the scipy C-based L1 distance if possible

This also removes the need for the size_threshold
parameter, as scipy's implementation doesn't allocate
large temporary arrays.
Merge pull request #3687 from perimosocordiae/fast-l1-dist

ENH: Use scipy.spatial.distance.cdist for L1 distance when possible