202 range checks

Sending this before doing all of the Matrix range checking to see if this is on the right track with what you had in mind. I tested the individual `ensureIndex` method but did not add tests for each method on `CompressedVector` that calls it. If you would like to me add those tests I can.
We should probably do this check in methods such as `get`/`set` but not in underlying method `searchForIndex`, which is private and maybe renamed/changed/removed. The range-check logic is implementation-independed so we have to do it a more general way.