add caffe_cpu_strided_dot for strided dot products

This provides a more direct interface to the cblas_?dot functions.
This is useful, for example, for taking dot products across channels.
softmax and softmax loss layers work across channels
test softmax and softmax with loss across channels
implement GPU version of Softmax
Merge pull request #940 from ronghanghu/channel-softmax

Softmax works across channels