Bug 1098654 - Improve layerization of display items when dealing with async scrollable layers. r=tnikkel

The function IsSubjectToAsyncTransforms() was not correctly reporting when a
layer was actually subject to async transforms. As a result, sometimes display
items from above such a layer would end up in a layer below. This could
manifest as page elements being improperly covered by async scrolling elements.
Bug 1098654 - Add a cache for animated geometry roots on the display list builder. r=roc