Turns out that the noise derivatives were fine; I was just computing the
surface normal incorrectly for lighting so things looked wrong. This
commit includes a working noise test case for the analytical gradient.

-Peter Mawhorter