Hi, I'm having an issue with `onMouseEnter` being triggered on children of a component. *It only occurs with React 16*.

I've created a [CodePen that shows the issue](https://codepen.io/testprofile75/pen/VMXXdb).

Simplified structure is as below:
```
           <Card/> :
–––––––––––––––––––––––––––––
|                            |
|          <Cover/>          |
|                            |
------------------------------
|                            |
|    <div class="text" />    |
|                            |
–––––––––––––––––––––––––––––
```

`<Card />` is a component that needs to capture `onMouseMove` events (and trigger a `render`) and `<Cover/>` is a simple component that waits for an image (passed as a `prop`) to be loaded before displaying it (using `onload` on an `Image` created in the `constructor`).

If you open the console, you'll see that `onMouseEnter` is triggered when hovering `<Card />` (normal behavior), but also when hovering the `.text` div (which is not supposed to happen).

If you remove the whole `onload` logic from the `<Cover/>` element, then `onMouseEnter` works as intended.

It's possible that I'm coding this in a way that isn't appropriate, but it does look like a bug anyway :)


instB = getParent(instB);
    depthB--;
  }
  
  var depth = depthA;
  while (depth--) {
    if (instA === instB || instA === instB.alternate) {
      return instA;
    }
    instA = getParent(instA);
    instB = getParent(instB);
  }
  return null;
}
/**
 * Return if A is an ancestor of B.
 */
function isAncestor(instA, instB) {
  while (instB) {
    if (instA === instB || instA === instB.alternate) {
      return true;
    }
    instB = getParent(instB);
  }
  return false;
}
/**
 * Return the parent instance of the passed-in instance.
 */
function getParentInstance(inst) {