BREAKING CHANGE: Take streams instead of paths

The constructors of all classes now take a stream (such as an open file
or a buffer) instead of a path. There is a new class method "open" on
the classes which will allow opening a path.
Also export FailedWorld
Merge pull request #1 from blixt/master

Pull from origin