Move dotblas to multiarray

see gh-4969
Yeah, I thought about that. In the end, my thinkinf was that if there was a cblas, there had to be a cblas header somewhere. If not, we could deal with it when it became a problem. The original was pretty old and I have no idea what motivated the inclusion of cblas.h.