Add numba-accelerated refine/locate/batch through engine={auto, python, numba}

Overview: ``refine`` calls ``_refine`` (pure Python) or ``_refine_numba``. ``refine`` does the necessary pure-Python prep work for numba. It checks the inputs and raises informatively if they are not compatible with the numba implementation (most importantly, if the image is not 2D).

``local_maxima`` and ``estimate_mass`` could be accelerated in a similar way, but since ``refine`` takes 95% of the runtime (according to %lprun) we are starting there.