Fix FIRM generation for arrays

It's amazing how small this diff is given how much pain arrays have given me, but these *should* work now in all cases.

Fixes #167
Wouldn't `firmType(arrayType.elementType)` always work? For `numDimensions > 1` the element type is an `ArrauType`, resulting in `firmType` returning `PrimitiveType(Mode.getP)`.