#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 would have thought that your new code would just involve a different calculation of bounds in the `if image is None` branch rather than new code the goes before all of the old cases.