expm maintenance

This PR speeds up expm a bit (from 40 seconds down to 34 seconds for an order 4k random.randn matrix on my computer, as an unofficial benchmark) and adds a test for numpy matrix input.

The speedup is mostly due to the correction of an earlier oversight where I was using a slow approximate way to get the 1-norm of a power of a positive matrix, but you can get this quickly and exactly.  This was somewhat obfuscated in the original paper because in one place the exact formula was given, but with a missing transpose, and in another place the approximation was used instead, so this was confusing to me.  Less importantly I am also using the newly added trmm for upper triangular matrices.

The expm function had no test for numpy matrices, but it happened to work.  One way that numpy matrices differ from numpy ndarrays and scipy sparse matrices is that `M.dot(M.dot(np.ones(M.shape[0])))` fails when M is a square numpy.matrix but works when M is a square numpy.ndarray or scipy.sparse matrix.  So I added a test for numpy.matrix input.