Allow update() to move files on disk.

There are a set of columns available through insert() and query()
which influence placement of files on disk, so it makes sense to
expand update() to allow movement of underlying files, as long as
the changes respect any rules that would have been applied to a
brand new insert().

When a caller updates any placement columns, blend them together
with any current values, and generate the path that would have
been used for an insert.

Bug: 123967243
Test: atest cts/tests/tests/provider/src/android/provider/cts/MediaStore*
Change-Id: Id2c9b51d466c2746e56392202278cb7d0c1075a7
4 files changed