iteratively infer Realization bounds in infer_input_bounds

`infer_input_bounds(Realization&, int max_iterations)` now optionally also iteratively computes the size of realizations required as a function of the schedule (e.g., splits require the the output to be rounded up to a multiple of the split factor, which transitively increases the required bounds of the inputs)