Attempts to optimise the fast infinite check slightly by only allocating new matrices when they are different sizes.
Changes the IntMatrix::set(IntMatrix) method to be virtual, so that EquivQuiverMatrix can override it to set up its row sums correctly. This then meant that the method name clashes with other non-virtual methods in IntMatrix, so IntMatrix::set(IntMatrix) was changed to IntMatrix::set_matrix(IntMatrix) to avoid clashes with other IntMatrix::set methods.