[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.