refactor for Codegen Routine

For OctaveCodeGen (pr #7824), I need some refactoring of `Routine`.

- [x] add Fortran matrix tests
- [x] add C matrix tests
- [x] move language specific stuff out of `Routine.__new__`

see this comment https://github.com/sympy/sympy/pull/7824#discussion_r17892414

On 30/09/14 03:38, Jim Crist wrote:
> I think we should be explicit with this change.

Agree, done.