The computational hoverfly; a study in computational neuroethology