As dulwich's client.fetch_pack expects an instance of history graph
walker with set of known heads, move the local heads caching from
determine_wants to the RepoRepresentation initialization logic.
Our previous code would always initialize the graph walker with an empty
set of heads (as the graph_walker() method is called before
determine_wants() has run, so self.heads was always empty), so we
would never actually fetch an incremental pack file.