Multivariate Bisection Method
I just stumbled upon the answer to this from geometrictools.com and C++ code.
edit: the code is now on github.
Sorry, while bisection works in 1-d, it fails in higher dimensions. You simply cannot break a 2-d region into subregions using only information about the function at the corners of the region and a point in the interior. In the words of Mick Jagger, "You can't always get what you want".