Implement job caching
Currently we're doing flush whenever set_framebuffer_state() is called. It's wasteful, especially if we need to reload tile buffer from memory. We should flush only when pipe_flush() is called explicitly or when we need resources that are written by particular jobs.
vc4 can be used as a reference, see vc4_job.c