Minimally deform CopyService such that we can listen to the completion of operations in the test. Add test coverage. Add equals and hashcode to DocumentInfo...so we can compare the heck out of 'em. + a test. WIP: Expose (@hide style) DocumentsProvider.isChildDocument via DocumentsContract. Use that to check for recusive copies. Bug: 25794511 Change-Id: I05bb329eb10b43540c6806d634e5b96a753e8178