[BUGFIX beta] Allow features to be consistent across channels.

In order to ensure that all feature flags that have been enabled on the
beta branch are always enabled on master the following changes have been
made:

* Make `defeatureify` able to leave feature flagged items in the build
  output for values other than `true`, `false`, or `undefined`. Changes
  made in [thomasboyt/defeatureify#3](https://github.com/thomasboyt/defeatureify/pull/3).
* Add a `features.json` file with all beta enabled features set to
  `true`, and any other features set to `null` (thus leaving the feature
  flagged source in the build output). (This was done in a separate
  commit to make merging into beta easier.)
* Add `ENV.ENABLE_OPTIONAL_FEATURES` flag to enable any features that
  are not explicitly set to 'false' or `undefined`. This will be used
  from the test harness in `ember-dev`.
* Add tests detailing the expected output from
  `Ember.FEATURES.isEnabled` in all scenarios.
Add features.json to mirror beta enabled features.
[BUGFIX release] Allow Ember.Object.create to accept an Ember.Object.

Also, adds an assertion if the passed in value is not an object or
instance of `Ember.Object`.

Resolves #3596.
Merge pull request #3597 from rjackson/allow_ember_object_to_accept_an_ember_object

[BUGFIX release] Allow Ember.Object.create to accept an Ember.Object.
Merge pull request #3633 from rjackson/specify_all_features

[BUGFIX beta] Allow features to be consistent across channels.