Made time internal to UISF

UISF now instantiates ArrowTime, which provides time :: UISF () Time.
Although a time function was available before, with this new structure,
we guarantee that even if time is used in multiple places within a UISF,
it will always return the same value for the same frame.  This allows
timers and delays to be free of an input time parameter.