Matmul with scalar factor
In linear backward we usually do something like this:

```Nim
dW = ((1.0f/m) * dZ) * cache.unsafeTranspose()
```

The operation `(1.0f/m) * dZ` creates a tensor with scaled values of `dZ`, GEMM from blas routines supports scaling factor directly in the GEMM, this API could be implemented so we could avoid one allocation here and fuse the scaling factor to the matmul operation, thus doing something like:

```Nim
dW = scaled_matmul(1.0f/m, dZ, 1.0f, cache.unsafeTranspose())
```