BUG: integrate: Fix some bugs and documentation errors in the ode solvers.

This pull request continues https://github.com/scipy/scipy/pull/3206.  Specifically, it fixes the handling of banded Jacobians in the `vode` solver and in the `complex_ode` class, and fixes some documentation mistakes.
`yield assert_*` usually produces unreadable test output.

I'd use test generators only to only iterate over parameter sets:
```
a_matrices = [a_real, a_real_upper, a_real_lower, a_real_diag]
solutions = []

for a in a_matrices:
    y0 = np.arange(1, a.shape[0]+1)
    y_exact = _analytical_solution(a, y0, t_exact)
    solutions.append(y_exact)

def check(a_idx, solver, meth, use_jac, with_jac, banded):
    a = a_matrices[a_idx]
    y_exact = solutions[a_idx]
    t, y = _solve_linear_sys(...)
    assert_allclose(t, t_exact)
    assert_allclose(y, y_exact)

for a_idx in range(len(a_matrixes)):
    p = [...]
    for solver, meth, use_jac, with_jac, banded in itertools.product(*p):
        yield check, a_idx, solver, meth, use_jac, with_jac, banded
```