[BUGFIX lts] More assertions for Application lifecycle methods
[BUGFIX lts] More assertions for Application lifecycle methods

While debugging an issue in the ember-inspector test harness, we
eventually we were dealing with very subtle hanging and errors
that were ultimately caused by trying to boot an already destroyed
`Application`.

The issue was very difficult to debug partly due to some states
(like `_bootPromise`) was reset in `willDestroy`, which is not
necessary, but was enough to cause other lifecycle methods (like
`boot`) to happily restart the process, but just hangs forever
later on.

This removes the state reset form `willDestroy` and just adds a
lot more assertions in general, hopefully making these kind of
situations fail louder and earlier.

GavinJoyce/ember.js,sandstrom/ember.js,mixonic/ember.js,elwayman02/ember.js,stefanpenner/ember.js,emberjs/ember.js,knownasilya/ember.js,asakusuma/ember.js,mixonic/ember.js,GavinJoyce/ember.js,mfeckie/ember.js,GavinJoyce/ember.js,tildeio/ember.js,asakusuma/ember.js,givanse/ember.js,givanse/ember.js,emberjs/ember.js,sly7-7/ember.js,elwayman02/ember.js,sandstrom/ember.js,sandstrom/ember.js,mfeckie/ember.js,emberjs/ember.js,tildeio/ember.js,asakusuma/ember.js,givanse/ember.js,stefanpenner/ember.js,sly7-7/ember.js,knownasilya/ember.js,stefanpenner/ember.js,knownasilya/ember.js,asakusuma/ember.js,tildeio/ember.js,mfeckie/ember.js,elwayman02/ember.js,givanse/ember.js,sly7-7/ember.js,elwayman02/ember.js,mfeckie/ember.js,GavinJoyce/ember.js,mixonic/ember.js