Uncatchable assert

an uncatchable assert.

The over arching idea is to mimc chromes `console.assert` which has some interesting properties.

1. uncatchable by user code (appealing)
2. does not block execution except in tests (I have mixed feelings)

This PR also adds an `expectAssertion` helper, and could likely lead to an additional  `expectAssertions` helper. I found that expectAssertions was a net benefit to the test suite,
and should likely remain in some form, even if we decide not to go with na uncatchable assert.

Caveats:
- some console.assert polyfils do not behave correctly
- the polyfill may be annoying to use with development tools

Glaring omission 
- make our friend ember-data work

I would like to hear your thoughts and concerns.