Track index bounds in the types of Ivory procs

This is helpful for the model-checker and for inserting assertions in the right place.

I also consolidated all (I think) of the instantiations of indices to `Int32` to one location in `Ivory.Language.Array`, so it should be easier to change in the future if needed.