Add support for efficient move within a document provider.

Currently moving files even within the same document provider causes
reading and writing all of the bytes, which is very inefficient for all
network based solutions, eg. Drive where moving even huge files can be
instant.

This CL adds an optional moveDocument method to the DocumentProvider as
well as DocumentContract so providers can implement an efficient way of
moving things. If not implemented, we would fallback to moving by
streaming.

BUG=None

Change-Id: I74d6754f96cbafa749a04ca9aebf2e0e2b64b515
4 files changed