graftcopies() (formerly called duplicatecopies()) checked that the
copy destination existed in the working copy, but it didn't check that
copy source existed in the parent of the working copy. In
test-graft.t we can see that as warnings about not finding ancestors
of the copied files, and also empty commits getting created.
This patch uses the existing _filter() function for filtering out
invalid copies. In addition to the aforementioned types, that also
includes copies where source and destination is the same.