Fetch support.

This supersedes #203.

It looks mostly ready so I'm open to suggestions. It misses tests (again :-S) and documentation.
Not sure why it's showing up here — I definitely don't see it in that PR with blame, an artifact of the latest `master` merge maybe ?