Switch the array analysis to a more expressive intermediate datatype.
Switch the array analysis to a more expressive intermediate datatype.

This switch will make it easier to deal with interprocedural analysis
since uses of pointers as call arguments can now more easily be
represented.  The change doesn't cause any existing tests to fail, so
it looks good.

travitch/foreign-inference,travitch/foreign-inference