This supersedes #10899 that is stale.
The goal here is merely to decouple the internals from the the observable based prototype extensions.
This will hopefully give us the flexibility to make a future call re: prototype extensions in general. This also eases the pain of using ember with prototype extensions disabled.
All this is accomplished without breaking semver in anyway.
More todo: