add Options struct and use it inside a session
make use of options.GOROOT and options.GOPATH in (s *session) buildPackage
convert (s *session) writeCommandPackage:

- add createMapFile flag to Options
- set it to true when running main
- create mapfile only if createMapFile is true (is so when running main, like old behaviour)
- create codefile only if Options.Target is not set (is so when running main, like old behaviour)
- set codefile to Options.Target (an io.Writer) and mapfile to Options.SourceMap
- use Options.Target and Options.SourceMap instead of codefile and mapfile
  this allows Options.Target and Options.SourceMap to be set to another io.Writer
  when package is imported as library
- set the MappingCallback only if Options.SourceMap is set. Allows to skip
  the source map in library mode
replace build.Default.GOPATH with Options.GOPATH and
replace build.Default.GOROOT with Options.GOROOT in
writeCommandPackage
extract the build of a directory to (s *session) buildDir method
decouple importPath from packagePath inside of buildDir
externalize options to jslib and export createMapFile to CreateMapFile
while we are at it
looks like a lot, but is in fact just extracting session and related stuff from
tool.go to build package and adjusting the exported symbols
add jslib BuildDir function and move Options from jslib to build to
prevent an import loop
add package builder and make packagePath in BuildDir relative to options.GOPATH/src
add user friendly options to jslib. user now only needs to include jslib
fixing paths in jslib
change import paths back to gopherjs/gopherjs