Makes the rendering of animation layouts asynchronous always to ensure that the current layout of the View gets rendered to the DOM.  If the current layout is not rendered, the animation layout will be all the DOM sees and thus it won't trigger an animation change.   This should make using SC.View:animate much easier, especially for new developers.

Also scrubs layout_style.js to remove a number of unused variables, support the above change and optimize the variable declarations.  This optimization dropped the minified file size from 9,322 bytes down to 8,914 bytes (408 bytes reduced).
Cleans whitespace.
Cleans whitespace.
Refactors transition and animation testing of SC.platform; adds SC.browser.cssPrefix, SC.browser.domPrefix and SC.browser.classPrefix; adds SC.browser. experimentalNameFor(), SC.browser. experimentalStyleNameFor() and SC.browser. experimentalCSSNameFor() methods; and adds SC.UNSUPPORTED constant.

There were many problems with the animation and transition tests that existed before.  There was no forward support so browsers, like the Firefox nightly that have dropped prefixes, would fail to identify as supporting transitions and transforms.  Also, animation event listeners were hard coded into RootResponder for webkit only.  Also the event names needed to be forward supported as well and because there is no consistency in the event naming, the real transition and animation events may not have been captured on certain browsers.

Now, SC.platform does quick and precise tests to determine the actual event names allowing the RootResponder to listen only to the properly named events rather than using a shotgun approach with a bunch of different browser prefixes.

To make the code forward compatible for when prefixes are dropped, SC.browser has three new support functions:  experimentalNameFor(), experimentalStyleNameFor(), experimentalCSSNameFor().  These functions return the proper name for experimental names for object classes & properties, DOM properties and CSS attributes, not by guessing, but by testing the standard name and then testing prefixed versions of the name if necessary.  This allows developers to avoid writing code like:  SC.browser.cssPrefix + "box-shadow black 0 1px 2px", which will fail on browsers that no longer need a prefix and instead use:  SC.browser.experimentalCSSNameFor('boxShadow'), which will return either "box-shadow", some browser prefix + "box-shadow" or SC.UNSUPPORTED (allowing you to do something else).

- The css prefix and dom prefix were calculated from the user agent, which duplicated work already done with more rigor in SC.browser.
- Fixes duplicate 'input' property in SC.platform.
- Deprecates SC.platform.cssPrefix and SC.platform.domCSSPrefix.
Updates test to use proper domPrefix value rather than the deprecated version.
Refactors SC.View:animate().

- animate() uses invokeNext() so that the developer never needs to monkey with the run loop in order to call animate().  Animations will only begin after the browser has had a chance to flush any changes to the DOM, thus ensuring that the animation actually occurs.  This will make using .animate() much easier whereas previously, developers would revert to invokeLaters to try and make sure the DOM style existed before animate would adjust it.
- the animate() function can now accept a target argument as well as a method, which conforms to the standard used by many methods in SproutCore.
- if no target it given the view itself will be the value of `this` in the callback.  Previously, this would be the layoutStyleCalculator, an internal object of SC.View.
- the animate() function is thoroughly documented now, including notes on how to hardware accelerate position changes.
- uses new additions to SC.platform and SC.browser to make animations forward compatible and fixes animate() on Firefox nightly
- hardware accelerated styles no longer remain in the DOM after the animation completes (i.e. sometimes the translate values would stay in the style)
- resetAnimation() has been renamed to cancelAnimation(), because reset indicates 'revert', but the default behavior doesn't revert the layout.
- added SC.ANIMATION_POSITION constant for use by cancelAnimation().
- fixes hasAcceleratedLayer to be dependent on the layout.  Previously, adjusting a non-accelerated layout to an accelerate-able layout failed to update the property and hasAcceleratedLayer would be incorrect.
- cancelAnimation() can now cancel an animation and adjust the layout to its current value during the transition, to its original value or to the final value which is the default.
- adds a private `liveAdjustments` property to SC.View, which will return the current value of properties that are being animated.  This even works for accelerated transitions that use transforms and return CSSMatrix values while animating.
- simplifies the code somewhat and cleans up a lot of loose ends that remained since the original code was largely copy-pasted over from the old animation framework.
- removes an observer on the view's layout from within the layoutStyleCalculator and properly chained up the dependencies to remove some manual notification code.
- includes new unit tests