needs to work from a file:// url
beforeChange needs to fire before we attempt to build next frame

Discovered this bug when writing tests, and it would never
get the first frame because it's using the beforeChange hook
to load up queued frames.
fix the beforeChange hook
add some basic behavior tests

Covers manual advancement and retreat and repeating behavior.
Currently exposes a logic bug when going past the end of the
list and back and then stopping repeat.  Will fix that next.