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 many helpers
ilo: make ilo_cp based on ilo_builder

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

To make that work, we start using the builder to manage kernels.