feat: cache nodes in parallel while playing
feat: cache nodes in parallel while playing

Cache nodes in parallel in separate stream that does not
require nodes to be retrieved in correct order.
Once nodes have been cached they will be loaded from
cache immediately in observable appending to state
trajectory.
Retry cache sequence if failing to ensure that nodes will
be cached.
Catch errors to ensure that subscription does not fail.
Keep track of last requested key to ensure that cache
node is not called multiple times for the same key.

mapillary/mapillary-js,mapillary/mapillary-js