backend_cairo.py -- added print_surface method

Added ability to print to a supplied cairo surface. It was the least hackish way I could interface matplotlib and mapnik.