refactor Bot to prerender ship

The ship is now rendered to a separate canvas, and then that canvas is
drawn to the other canvas to reduce the number of times the ship needs
to be redrawn.