Added new ring geometry.

I added a new ring geometry which takes the same arguments as the circle geometry plus a few more appropriate for a ring. I'm not happy with the special case for when the inner radius is zero, but I don't see a better workaround.