fa: Rework seek interface.

Now there is an additional 'lazy' parameter indicating that the caller
thinks it's OK for the seek to fail if the request cannot be processed
in a "reasonable amount of time". Typically this is used to reject
seeks when in a non-seekable HTTP stream