I've found something that I think we need a fix for to make the `Nearest` interpolant work, and it's inside the correlated noise.

I wrote a quick test script (again on my junky #430test branch):
```
import numpy as np
import matplotlib.pyplot as plt
import galsim

CFSIZE=9
UPSAMPLING = 3

rng = galsim.BaseDeviate(752424)
gd = galsim.GaussianNoise(rng)
noise_image = galsim.ImageD(CFSIZE, CFSIZE)
noise_image.addNoise(gd)

cn = galsim.CorrelatedNoise(rng, noise_image, x_interpolant=galsim.Nearest(tol=1.e-4), dx=1.)

test_image = galsim.ImageD(
    2 * UPSAMPLING * CFSIZE, 2 * UPSAMPLING * CFSIZE, scale=1. / float(UPSAMPLING))
cn.applyRotation(30. * galsim.degrees)
cn.draw(test_image)

plt.clf()
plt.pcolor(test_image.array)
plt.colorbar()
plt.savefig('cf_nearest.png')
plt.show()
```
here is the output:
![cf_nearest](https://f.cloud.github.com/assets/1454961/947653/76d45682-0358-11e3-91a3-a44808325986.png)

I think this demonstrates the issue.  the drawn image is behaving exactly as we've asked to to be, a set of samples at the pixel centres.  to make this work correctly I think we need to apply a `galsim.Pixel(1. / floatUPSAMPLING)` to the profile before drawing the correlation function.  do you see what I mean?

I can add this on this branch and check it passes the tests...

Funnily enough, this might be the reason that the `Linear` worked the best - it is a twofold boxcar convolution!