ilo: add a builder for building BOs for submission

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

 - can manage STATE_BASE_ADDRESS
 - can upload kernels using unsynchronized mapping
 - does not flush
 - provides more helpers
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.