Added SneakyDrawer to demonstrate that Louis's concern is invalid.  

SneakyDrawer is a new Drawer that basically takes the approach of "I can
use reflection to get at everything, so why should I care about your
stupid API."  It uses primitives to draw everything (that it can).  

As SneakyDrawer demonstrates, there is no way to force a java class to
conform to an API, so I think that what we are doing right now is good
enough.