Support for single indexes in MatrixExpr

This allows MatrixSymbols to be iterated over, and gives a similar
interface to DenseMatrix. MatExpr are treated as row-major order arrays.
This only works if both the matrix shape and index are Integer/int.
5083: make bases somewhat canonical wrt sign

There are different levels of sign extraction:

1) coefficient sign
2) extractable sign via could_extract_minus_sign
3) "           "    via signsimp

Some sort of sign simplification must be done by Pow or
else other routines cannot do theirs. e.g. if (1-x)**3 is
written as (-(x - 1))**3 by extracting a sign on the interior,
if Pow doesn't do anything then a non-Pow routine has to do the
work. This PR implements handling of the leading coeffient's sign.
Merge pull request #7883 from jcrist/matsym_iter

Support for single indexes in MatrixExpr
Merge pull request #7897 from smichr/5083

5083: make bases somewhat canonical wrt sign
minor tweaks
7899 - is_real oo-recursion problem fixed

An underlying error in the is_real and is_imaginary routines
has to do with dealing with elements that are not known to be
0 or not. So if r is a real variable (I*r).is_real should be
None because it could be imaginary or 0. (This might be a good
reason to make 0.is_real = 0.is_imaginary = True.)

Fixing the few is_foo routines precipitated failures and other
fixes. One is to make sure that the as_real_imag doesn't lead to
infinite recursion. The other is to modify the RoundFunction routine
to entertain *possible* imaginary terms, e.g. (I*r).is_imaginary is
None but it actually could be 0 or imaginary and handling it as such
wouldn't break the return value of ROundFunction. So a test like
`foo.is_imaginary` should be `foo.is_imaginary or (I*foo).is_real`.
keep floor(i) unchanged if i is imaginary symbol
correct inline note [skip ci]
undo trivial reodered expressions in tests [skip ci]
responding to review
watch for pairs of imaginaries that control Mul sign
only process imaginaries in is_negative
only process literal imaginary in abs