Pull request

I've added a couple minor features:

1. A check to make sure that the ones matrix is large enough to do a particular sum.
2. A keyword argument to set the size of the ones matrix during cublas_init if desired.
3. More detailed cublas error reporting (which mirrors the cublas errors in CUDA 6.0)
This is (and always was) actually broken. When `err_code == -3`, it means that one of the functions in `cudamat.cu` returned `CUDA_ERROR`, which it does if `cudaGetLastError()` in `checkCUDAError()` returned something different from `cudaSuccess`. However, when this has happened, `cudaGetLastError()` has already reset the last error state back to `cudaSuccess`, so `get_last_cuda_error()` will always return something along the lines of `"operation successful"`.

If all code paths definitely call `get_last_cuda_error()` after an error occurred, then `checkCUDAError()` could just use `cudaPeekLastError()`. If you feel like it, please feel free to address this while you're working on the error handling anyway :)