fix types of (Layer)SetUp, Reshape, Forward, and Backward calls

Using the type vector<Blob<Dtype*>* for outputs allows modification of
the vector itself, while it is only okay to modify the blobs pointed to
by the elements of the vector. Switching the types to const
vector<Blob<Dtype>*>& makes them more correct.
Merge pull request #945 from longjon/fixtypes

Fix types of SetUp, Forward, Backward, and gradient checker calls
fix directory in finetune pascal example
Merge pull request #1117 from ronghanghu/fix-finetune-example

[fix] set R-CNN fine-tuning PASCAL example paths
drop out-of-date conv test comments
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.
Back-merge
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
implemented basic AdaDelta (section 3.1 in paper) + simple test cases
full adadelta + additional tests
mnist demos with adadelta