Don't force push to sympy_doc
Deploy the docs as part of the script phase in Travis

This has several advantages:

- If it fails, the build will fail.
- We do not need to rebuild the docs. They are already built from the test
that builds the docs.
- We do not arbitrarily only deploy when the first test in the matrix is
finished. The deploying is now tied to the docs building matrix.
Fix bash syntax in .travis.yml
Fix name of deploy script in .travis.yml
Generalize physics.quantum.OuterProduct so that it can handle scale kets/bras and sums of kets and bras
Unit tests for updated OuterProduct in the physics.quantum module
CodePrinter: allow subclasses to easily override _print_NumberSymbol()

Instead of assigning `_print_Catalan = _print_NumberSymbol`, just
return `_print_NumberSymbol`.  That way, subclasses can redefine
`_print_NumberSymbol`.
Add OctaveCodePrinter

Printer for Octave/Matlab code.  Lots of work still to be done.
Codegen: Add Octave code generator

This is very early WIP.
Matrix: customizable symbols for start/end of rows in table()

No change in default behaviour but this allows more customizable
output by adding `rowstart` and `rowend` kwargs to the existing
`rowsep` and `colsep`.
OctaveCodePrinter: matrix output bit more Octave-style
OctaveCodeGen: sympy version in test
OctaveCodeGen: some things works, lots of tests cleaned up
OctaveCodePrinter: octave can assign matrix to a symbol, disable error.

Of course, need a better solution that accomodates C/Fortran.
OctaveCodeGen: matrix output failing, broken test added
printing: MatPow should have Mul precedence
OctaveCodePrinter: indenter

Tests not updated yet.
OctaveCodePrinter: Use ".^" for Pow and "^" for MatPow

This is overly simplified, might revisit for things like pi**2 later.
OctaveCodePrinter: Improve Mul, identity, tests updated

Lots of tests updates all jumbled up here.
OctaveCodePrinter/OctaveCodeGen: minor cosmetics and comment changes