Fetch support.

This supersedes #203.

It looks mostly ready so I'm open to suggestions. It misses tests (again :-S) and documentation.
Yeah, I remember having *that* nagging feeling when I wrote it. Another more correct way to do it would be to grab the remote in the constructor, what do you think ?