isl: Add and use size and alignment calculators
What does this MR do and why?
Instead of interleaving the code for the size and alignment calculations, split them out into their own functions.
This should make the code easier to follow and avoid some uninitialized variable warnings.