Two things:
Two things:

1. Modified the performance metric code to use hundred microseconds rather
than milliseconds as millis are not sufficiently fine grained.

2. Switched from using an ObserverList to a hand-rolled mechanism for
frame participants. It is unfortunate that we're not reusing code (though
this turns out to be 55 fewer lines of code) but the FrameManager needs to
allow tick participants to be removed from the list while in the middle of
processing another participant's tick.

With the ObserverList we have to use SAFE_IN_ORDER_NOTIFY which adds
undesirable overhead to each tick, or FAST_UNSAFE_NOTIFY which is
efficient, but freaks out if an as-yet-unticked participant is removed
during another particpant's tick.


git-svn-id: a1a4b28b82a3276cc491891159dd9963a0a72fae@3140 542714f4-19e9-0310-aa3c-eee0fc999fb1

threerings/narya,threerings/narya,threerings/narya,threerings/narya,threerings/narya