pull: move `fetch` subset into the object
Tree discovey use a `fetch` variable to know what is being pulled. We move this
information in the `pulloperation` object. This make it possible to extract the
changeset pulling logic into its own function.
ERROR: FIXME: This is a known failure of filelog.size for data starting with \1\nOK.