Initial support for source map generation

This is related to #109.

Ok, this is just an initial support. I think it's time to try to get the API right, currently it adds `sourceMap` option which changes the returned value to `{code: "...", map: {...}}`.