LLFrameTimer::sFrameTime is accessed by the texture
thread as well. Although the only consequences are
that it's possible for a timer in the texture thread
to time out too early (or to never time out when
it's started) when it reads this variable at the
same time as that it is updated, which is pretty
inlikely, it's just not-done to leave anything
thread-unsafe when it's known to be thread-unsafe.
This patch also adds a framework for AIFrameTimer, but
that isn't implemented yet.
This makes the class API a bit more sane, although
only a bit, because I had to leave it working with
possibly new code merged in from LL: the API can't
really change. I also removed some unused code.
While reviewing how LLFrameTimer worked however,
I did find a few instances where things where broken:
* sFrameDeltaTime wasn't correctly updated (more
than once per frame and therefore erratic). This
only influenced scrolling speed, but still.
* While dragging an inventory item, the scroll
arrows of a tab container didn't work
(LLTabContainer::handleDragAndDrop).
* Map zoom interpolation was broken (it interpolated
between A and B, but used the already updated
interpolation for A the next frame...
(added mCurZoomValInterpolationStart).