BUG: use correct algorithm for callable metric

Fixes bug reported in #2151.  The neighbors base object was choosing  the wrong algorithm given a callable metric.