Fix module loading in IE11.

SC.Module was using a isIE check to determine how to detect when the script
finished loading. IE11 removed support for onreadystatechange, so the
module loaded callback was never called. Changed this to a feature detect
so it will always work properly.
Fixes SC.browser snorting of IE11.  See #993.
Use SC.browser.version instead of SC.browser.engineVersion for IE.

The SC.browser.engineVersion will be equal to SC.browser.version for some
versions of IE, but that should not be relied on, as some versions
correctly set SC.browser.engineVersion to the Trident version.
Adds unit test proving #979.
Further fixes to firstObject/lastObject invalidation.

The check in _scac_arrayContentDidChange to determine if lastObject should
be invalidated was slightly wrong and would invalidate too often.

The check in enumerableContentDidChange had the same problem, and if the
parameters were not passed in, firstObject and lastObject would never be
invalidated. While we know in this case that firstObject and lastObject
are not intended to be observed, since they are cacheable properties, the
cache would not be invalidated, so it was not safe to use get() on these
properties.

Also added unit tests to make sure firstObject and lastObject are
invalidated when expected (and not more often).
Only return true from SC.CollectionView#insertNewline if handled.

insertNewline would always return true even if it wasn't going to handle
the action. This caused problems with dialogs with a default button, as
the default action would never trigger while a collection view had focus.
Bumping to SC 1.9.0.18.