Add CheckIndexStyle trait for bounds-checking
The motivation here is to allow wrapper-types to exploit the same short-
circuits of bounds-checking used for `AbstractRange`.
This also fixes a previously-undiscovered bug in `checkindex` for
`AbstractRange{Bool}` indices. It was hidden by the fact that
`checkbounds` itself short-circuits before calling `checkindex` in
this case. But since `checkindex` is an exported function, it should
also give the correct result.