We create many `useDebugValue` helpers, loggers and so one now, so we can feel less pain.

What matter (**Updated**)
- previewing complex values brifely like chrome devtools does it for arrays, sets, maps, objects,,,

I [wrote related twit](https://twitter.com/mxtnr/status/1178271362890240001) recently with one of my DebugValue helpers. screenshot out here:
<img width="556" alt="Screenshot 2019-09-29 at 14 01 53" src="https://user-images.githubusercontent.com/6201068/66700775-5648bf80-ecfd-11e9-93fe-089d451bcffa.png">
_my named hooks currently require a `label` option unless react babel cannot transform name of variable automatically_
(unserializableValue[i] = dehydrate(
                item,
                cleaned,
                unserializable,
                path.concat([i]),
                isPathWhitelisted,
                isPathWhitelistedCheck ? 1 : level + 1,
              )),
          );
        }
        unserializable.push(path);
        return unserializableValue;
      }
    case 'date':
      cleaned.push(path);
      return {
        inspectable: false,
        name: data.toString(),
        type,
      };
    case 'object':
      isPathWhitelistedCheck = isPathWhitelisted(path);
      if (level >= LEVEL_THRESHOLD && !isPathWhitelistedCheck) {
        return createDehydrated(type, true, data, cleaned, path);
      } else {
        const object = {};
        for (let name in data) {
          object[name] = dehydrate(
            data[name],
            cleaned,