Fix/improve matrix-vector At_mul_B! and Ac_mul_B!

- Add ! to end of matrix-vector At_mul_B that takes output array
- Use BLAS for Ac_mul_B! with BLAS types
Merge pull request #5001 from simonster/mul_cleanup

Fix/improve matrix-vector At_mul_B! and Ac_mul_B!