Source Map Support

This pull request introduces a massively breaking change, but also includes full support for sourcemaps from any adapter that supports them. This means most css and js languages and hardly any of the html ones. The breaking change is that rather than returning a compiled string, you now get back an object which always contains a `result` key with the compiled result, and sometimes might include a `sourcemap` key as well.

The good news is that if, down the line, there is any other information that needs to be included (coffeescript already returns 2 different types of sourcemaps), the object is flexible enough to accommodate.