Changed indexing printing for codegen

Now all indexing is done with single dimensional arrays, and arithmetic
on the the indices (i.e. x[7] instead of x[2][1] for a 3x3 in C). This
allows the printing to work with cython wrapping. Fortran is excluded
from this change, as multiple indices are required.
Refactor and Improvement to Cython autowrap

Lots of changes to c code printing, codegen, and cython autowrap to get
everything to work great with C.

Changes:
- All C code that has a return value now creates a local variable
  "function_name_result" with the datatype of the function (double or
  int). The result is then set equal to variable, and then it's returned
  at the end of the function. This allows multi-line statements to be
  used with a function that has a return value, as this was causing
  problems before with looping and scalars. The printed code is less
  pretty, but will still compile, and a modern compiler should be able
  to optimize this out if it isn't needed.
- New `dereference` kwarg added to `ccode`. This prints the included
  symbols dereferenced `(*a)` instead of `a`. Allows pass by address.
- Cython printing now works. I can't see how it ever did before.
- Matrices are now supported in autowrap.
Added travis testing support for autowrap (i.e. cython and f2py).