* fix(lifecycle): honor bucket retention during scanner expiry * fix(lifecycle): reject zero object lock retention * test(lifecycle): cover malformed retention metadata --------- Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com>