RFC: Improved CP Syntax

This PR implements https://github.com/emberjs/rfcs/pull/11

It is based on #9489, which will be merge soon. Also supersedes #9478 (I'll close it in a minute).

There is no feature flags for this because it mostly a refactor that does not change current semantics. It could be done though.

### Taks

Done in #9489 

- [x] Raise deprecation warnings when passing `cacheable` or `readOnly` to the constructor. No extrictly necessary, but is not used anywhere in the code since 2012 and simplifies things.
- [x] Deprecate usage of `cacheable()` and `readOnly()`. Are the default.

Done in this PR:

- [x] Refactor CPs to work internally with setter and getters. Passing a function still works: If the function has arity < 2 its considered a getter. If arity is >=2 is considered both setter and getter. 

Steps in futures PRs:
- [x] Use new cp syntax all iver the place in ember internals.
- [x] Although passing functions with arity >= 2 is still allowed, is deprecated. Recommend user {get, set} instead.
- [ ] Implement logic in https://github.com/emberjs/rfcs/pull/12
- [ ] Deprecate all the things!
- [ ] Ember 2.0. Delete all the things!


Can you change this around to be:

```javascript
if (Ember.FEATURES.isEnabled("new-computed-syntax")) {
} else {
  if (typeof func !== "function") {
    throw new EmberError("Computed Property declared without a property function");
  }
}
```