cleanup BLAS.dot method argument types
When `BLAS.dot` accepts `StridedArrays` the following may occur:
```julia
using Base.BLAS
n = 5
A = zeros(n,n)
A[1,1:5] = 1
B = zeros(n,n)
B[1:5,1] = 1
sA = sub(A,1,1:5)
sB = sub(B,1:5,1)
a = BLAS.dot(sA,sB)
println("sA: $sA")
println("sB: $sB")
println("BLAS.dot(sA,sB): $a")
```
Output:
```
sA: [1.0 1.0 1.0 1.0 1.0]
sB: [1.0,1.0,1.0,1.0,1.0]
BLAS.dot(sA,sB): 1.0
```
Solution:
* main `BLAS.dot` methods should only accept `Ptr`s or `DenseArray`s
* helper `BLAS.dot` methods should only accept `DenseArray`s and
`StridedVector`s, the pass `Ptr`s to the main `BLAS.dot` methods