p DataInputStream for partially used ArrayBufferInputStreams

The special casing of DataInputStream for ArrayBufferInputStreams
behaved incorrectly, when the underlying stream was partially
consumed. This commit fixes this by exposing the
ArrayBufferInputStream's current position and using it instead of a
position variable internal to DataInputStream.
p Improve exception information when deserializing IR
Create a jsDependencyManifest task. Integrate with ExternalCompile
Implement java.util.zip.ZipInputStream
Remove unused code reading source maps
Refactor tools.json to abstract backend-specifics into a single file
Cross-build Scala.js tools
Implement virtual file systems for Node.js
wip js link test
wip link test
wip link