return a clone of the cached doc, not a reference!

If we return the PPI::Document object, something might start to
mutate it, then decide not to (or throw an exception).  Then,
the object in the cache is in the modified state, even though
nothing saved the document back to the cache.

This was exposed by t/plugins/pkgversion.t, when inspecting files
by eye.  I added a test for the symptom in 2b31778, and this
commit fixes the bug.