base: File API

Missing:

* Binary files
* File removals
* Unit tests
* Docs as docbook, fix typos etc
I would suggest having file.close() as an all powerful wrapper to close/cancel all the things the file is doing.

And see above for unwatch() vs watch().remove()