Fixed 'imports' to resolve merge conflict
Merge pull request #2508 from jsfb/monitor-with-context

Start monitoring uses of withContext, related to issue #2112
Merge pull request #2550 from sebmarkbage/cleanupinternals

Move ComponentEnvironment out of ReactComponent
Stop Mutating Merged Lifecycle Results

Summary:
Currently, `ReactClass` mutates values returned by `getDefaultProps`, `getInitialState`, and `getChildContext`. This is bad because the objects may, for example, be cached and re-used across instances of a React component.

This changes `ReactClass` to instead create a new object. In return for allocating a new object, I've replaced `mapObject` with a `for ... in` so that we are no longer allocating an unused object.

Fair trade, IMO.

Test Plan:
Ran unit tests successfully:

```
npm run jest
```

Conflicts:
	src/core/ReactCompositeComponent.js

Conflicts:
	src/class/ReactClass.js
Merge pull request #2464 from yungsters/immutable

Stop Mutating Merged Lifecycle Results
Preserve Implicit Method Names

Summary:
Changes the way we instrument methods for `ReactPerf` so that developer tools can assign implicit method names to measured functions.

Reviewers: @zpao @sebmarkbage
Merge pull request #2465 from yungsters/perf

Preserve Implicit Method Names
Remove some invariants and deadcode

These are not necessary if we enable type checks. Static or dynamic.

They're distracting my greppability.

Also, some dead code in shallow rendering.