Added a generic file buffer to cache remote files locally for backends that do not support streams

Currently, that's all except gdkpixbuf.