Coalesce warnings for deprecated lifecycle hooks and print single message after reconciliation (rather than one per component-type).

Relates to PR #12028 and [this comment](https://github.com/facebook/react/pull/12028#discussion_r162420575).
let expirationTime;
    if (expirationContext !== NoWork) {
      // 
      expirationTime = expirationContext;
    } else if (isWorking) {
      if (isCommitting) {
        // 
        // 
        expirationTime = Sync;
      } else {
        // 
        // 
        expirationTime = nextRenderExpirationTime;
      }
    } else {
      // 
      // 
      if (fiber.internalContextTag & AsyncUpdates) {
        // 
        expirationTime = computeAsyncExpiration();
      } else {
        // 
        expirationTime = Sync;
      }
    }
    return expirationTime;
  }
  function scheduleWork(fiber: Fiber, expirationTime: ExpirationTime) {