#603 - drawImage() keywords for setting output size.

This PR introduces a few convenience keywords to drawImage() to set the output image size, either by resizing an existing image or by overriding the `getGoodImageSize` values in the case where a new image gets constructed.

Here's an excerpt from the updated docstring:

```
        @param nx           If provided, use to set the x-direction size of the image.  Must be
                            accompanied by `ny`.
        @param ny           If provided, use to set the y-direction size of the image.  Must be
                            accompanied by `nx`.
        @param bounds       If provided, use to set the bounds of the image.
```

There are also a few new unit tests to go along with these.
>This code doesn't respect the restriction that bounds is only valid if image is None. If the user provides both image and bounds, it will resize the image. I don't think that's the behavior we want. I think that should be an error. Likewise for nx,ny below.

I wrote this to parallel the behavior of the `scale` or `wcs` keywords to drawImage(), which do override any existing `image.scale` or `image.wcs` attributes:

```
im = galsim.ImageD(32, 32, scale=0.2)
obj.drawImage(image=im, scale=0.1)
assert im.scale == 0.1
```

I'm fine with disallowing this behavior for nx,ny,bounds, but then we probably need to be more explicit about which params override and which do not in the docstring.  Or do you think the scale example above should also be disallowed?