Revise re-create components to target color updates aren't lost.

When the component statuses were lost (because of remote server restart), we
would blindly recreate them. This would cause us to overwrite color target
updates as the remote server would re-set our color targets.

We now recreate AFTER reading targets, and do it in a revision safe way so
we don't lose relevant requests.