#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.
On a related note, I started playing around with sub images, and found that the following code runs (on master):
```
foo = galsim.Image(32,32,scale=1.7)
new_bounds = galsim.BoundsI(5,7,14,29)
foo[new_bounds].scale=2.
```
If I check the value of ```foo.scale```, it is 1.7.  So basically, the above code runs without complaint, which would silently allow a user to think they changed the scale of a  sub image (which doesn't make sense!  or at least I can't think of a use case for this).

As for allowing the scale of an input image to change... there are use cases where it makes sense and others were it truly doesn't (and trying to do so would basically be a bug).