Optimize 1x1 convolution for Network-in-Network style operation

1x1 convolution with stride 1 is a special case of Caffe matrix
multiplication convolution for which im2col / col2im transformations are
actually the identity. For this special case the memory and
transformation are skipped.

This optimizes the execution of 1x1 convolution i.e. NIN / CCCP convolutions. 

@mavenlin
Good catch -- there's no need for the two at once since the `col_data` is only for the gradient w.r.t. the weight while `col_diff` is only for the gradient w.r.t. the bottom. Should we parallelize these in the future separate buffers will be needed, but that can be adjusted when we cross that bridge. Check out the follow-up commit.