https://codesandbox.io/s/40j50607y0

Rendering a component like:

```js
const Foo = () => <React.Fragment />
```

Throws the error:

> Foo(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.

The error is confusing because clearly `Foo` _is_ returning a value. I don't know if we want to support rendering empty fragments, but in any case this error is confusing.

If this isn't allowed it should explicitly call out that a component cannot return a fragment with no children.

cc @gaearon 
import invariant from 'fbjs/lib/invariant';
import warning from 'fbjs/lib/warning';
import {
  createWorkInProgress,
  createFiberFromElement,
  createFiberFromFragment,
  createFiberFromText,
  createFiberFromPortal,
} from './ReactFiber';
import ReactDebugCurrentFiber from './ReactDebugCurrentFiber';
import {StrictMode} from './ReactTypeOfMode';
const {getCurrentFiberStackAddendum} = ReactDebugCurrentFiber;
let didWarnAboutMaps;
let didWarnAboutStringRefInStrictMode;
let ownerHasKeyUseWarning;
let ownerHasFunctionTypeWarning;
let warnForMissingKey = (child: mixed) => {};
if (__DEV__) {
  didWarnAboutMaps = false;
  didWarnAboutStringRefInStrictMode = {};
  /**
   * Warn if there's no key explicitly set on dynamic arrays of children or
   * object keys are not valid. This allows us to keep track of children between
   * updates.
   */
  ownerHasKeyUseWarning = {};
  ownerHasFunctionTypeWarning = {};
  warnForMissingKey = (child: mixed) => {
    if (child === null || typeof child !== 'object') {
      return;