Speed up manifest pruning

With many manifests (I'm testing 10k or so), this is _significantly_
faster than the from_list/to_list roundtrip.
Return updated manifests from Riak write

Previously we would write updated manifests to Riak, but would return
state ones from the function call. This could cause manifests that were
marked as `scheduled_delete` to get reverted back into the `active`, or
`pending_delete` state.
Fix bug in check for overwritten manifest versions that results in
deletion metadata being erroneously updated. This bug was masked by
the bug fixed by commit 87c6304ddbbeada7013f2cdb2e0974c2b18b2d4a.
Merge branch 'bugfix/manifest-pruning' into release/1.4