Sync

Switches carto to use a synchronous API (no callbacks) since it does no IO.

Improves error handling situation like this one in master where some errors are thrown and others are passed via the callback (https://github.com/mapbox/carto/blob/master/lib/carto/renderer.js#L98-L100). Now all errors should be caught using try/catch.

cc @springmeyer @tmcw