[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) (and published as version 0.1.4).
* 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).
* 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.

I have manually tested this against beta (without modifying the `features.json`): all tests pass and no feature flagged items are included in the build.

/cc @machty @wagenet