base: File API

Missing:

* Docs as docbook, fix typos etc
Connecting to the "changed" event is useful without watching for external changes, if you know that there aren't going to be any and want to save the resources.  But maybe not useful enough...

Right now watch/unwatch are like start/stop, without keeping a count of how often watch has been called.  I almost made it an option, but I wanted to make it more explicit that you need to call unwatch eventually.

So, hmm.  You approach fits better with the existing APIs, so let's do that.