ilo: add a builder for building BOs for submission

Comparing to how we manage batch and instruction buffers, the new builder

 - manages both types of buffers
 - uploads kernels using unsynchronized mapping
 - provides more helpers
 - has a decoder for its buffers
 - does not flush
ilo: make ilo_cp based on ilo_builder

This only makes ilo_cp use the builder to manage batch buffers, and use
ilo_builder_decode() to replace ilo_3d_pipeline_dump().
ilo: use ilo_builder to manage instruction buffers

Remove instruction buffer management from ilo_3d and adapt ilo_shader_cache to
upload kernels to ilo_builder.