MAINT: use scipy.linalg instead of np.dual

The purpose of `np.dual` seems to be to use scipy functions if scipy is available and otherwise use numpy functions, so this seems silly to use within scipy itself.