lifecycle subquery for update now wrapped in COALESCE

The shadow_lifecycle value is now incremented from previous value during
update in subquery, and is also wrapped in a COALECE to handle the case
of no previous shadow/lifecycle being found. This shouldn't normally
happen during an update, but can occur the case of existing data that
hasn't had shadows initialized yet (i.e. $schema->init_all_row_shadows
wasn't called, see previoud commit for more details)

This is essentially an alternate way to handle the existing data
scenario from explicit shadow initialization. Both are now being tested
in t/deploy_init_shadows.t and t/deploy_shadows.t respectively