FCodegen: add matrix tests
Codegen: prototype Routine factory
FCodeGen: MatrixSlice tests, including XFAIL one
OctaveCodeGen: XFAILing MatrixSlice tests

These need support in OctaveCodePrinter.
Codegen: refactor Routine: add "routine" factory, implement in each Codegen

Put the existing Fortran/C `Routine.__init__` into Codegen class.
Essentially unchanged.  Update test header to use the factory, but
tests themselves unchanged.
OctaveCodeGen: make our own Routine

Now: output order always matches given expressions.  Matrices can
work without breaking C/Fortran.  Probably other benefits.