Bug 972088:  Make nsIFrame::Preserves3DChildren not call nsStyleDisplay::HasTransform (pure refactoring).  r=mattwoodrow

The purpose of this change is to make the code less confusing (since it's not clear to me why one would check HasTransform here), and in general to reduce the number of callers of HasTransform, since HasTransform is a complicated check that checks too many things and probably isn't the right thing for many of its callers (see, e.g., bug 968555).

This is pure refactoring because:
 (1) We're calling HasTransform only if mTransformStyle is
     NS_STYLE_TRANSFORM_STYLE_PRESERVE_3D.
 (2) HasTransform can return false for either of two reasons:
     (a) because HasTransformStyle is false, which cannot be the case
         here because HasTransformStyle checks mTransformStyle, and we
         already know that check passes because of (1)
     (b) because IsFrameOfType(nsIFrame::eSupportsCSSTransforms) is
         false.
This means that we can replace the HasTransform check with solely the
IsFrameOfType check.
Bug 541855:  Add in the error tolerance before calling the timing function, so that we allow more error for steeper functions, and less error for most.  r=dholbert
Bug 480888 patch 1:  Rename ComputeOutlineAndEffectsRect to ComputeEffectsRect.  r=roc
Bug 480888 patch 2:  Remove always-true aStoreRectProperties parameter to ComputeEffectsRect.  r=roc
Bug 480888 patch 3:  Refactor a common pattern into a FrameMaintainsOverflow helper function.  r=roc
Bug 480888 patch 4:  Draw outline around the union of border boxes, SVG, and text, rather than the visual overflow area.  r=roc

At the same time, move the handling of outlines on inlines that contain
blocks earlier, so that we factor it into the stored frame property (and
thus have the stored frame property) and so that we include it
accurately in the overflow calculation.