Capture more of the fast cases

It's unlikely that this will make a difference, but if people embed a
*Dense in something else, then this fast tract operations on those
types.
Weaken the View return

This goes halfway towards what David Neumann was suggesting (return a
*Dense) but allows us to take views on embedded *Dense matrices. It adds
some overhead but keeps flexibility.