Sourcemap Functionality Added

Added sourcemap functionality, will update README tomorrow, this
required quite a major refactor. Removed a lot of promise-based async
and just went with sync code. It's possible that this will be reverted
in the future.