ilo: add a builder for building BOs for submission

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

 - does not flush automatically
 - manages STATE_BASE_ADDRESS
 - uploads kernels using unsynchronized mapping
 - provides many helpers
ilo: make ilo_cp based on ilo_builder

Because ilo_builder handles instruction buffers and STATE_BASE_ADDRESS, the 3D
pipeline code also needs a few changes.

This is the first step.  We want ilo_builder in ilo_context in the end.