optimize 1x1 convolution for Network-in-Network style layers

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.
combine col_{data,diff} into single col_buff to halve memory usage

conv forward / backward only need one of the im2col data and diff
at-a-time so consolidating the two saves a lazy allocation.
Merge pull request #1118 from shelhamer/1x1-conv

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