* Updated the input stream tostring logic as I'm not comfortable with
the mysterious scanner yet!
* Added gatherer that collects until no new uris have been discovered.
Fatally flawed as it doesn't cope for uris that aren't prefixed by the
root uri but we'll get to it