ENH: sparse.linalg: implement matvec as matmat and vice versa

Also improved the subclassing documentation and put in some input
validation.