Improve build process

Programatically wrap the concatenated source code in an
immediately-invoked function expression at build time. This allows for
easier code sharing between files, lessening the friction in dispersing
the source across multiple files.
Break API definitions into separate files
Fix whitespace

Now that the source files are programatically wrapped in an
immediately-invoked function expression, the base-line indentation
should be removed.
Add sourcemap support