unsafe workaround for slow subarrays

Gives a 3.3x speedup on a model with 1,000,000 constraints, which means that we create 1,000,000 array views on every function call. This means that any allocations are bad news given the quadratic performance of the GC.
@timholy, do you know of any safer way to make a zero-allocation array view object?
@IainNZ @joehuchette