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