Added contrastive loss layer, associated tests, and a siamese network example using shared weights and the contrastive loss.
fix caffe train GPU initialization

Previously, the solver constructed nets before the caffe train tool read
the --gpu flag, which can cause errors due to LayerSetUp executing on
the wrong device (breaking cuDNN, for example).
Merge pull request #1083 from longjon/fix-solver-gpu-init

Fix solver GPU initialization order (e.g., training with cuDNN on non-default device)
[example] update paths in net surgery
[fix] snapshot model weights as .caffemodel, solver state as .solverstate
set up datum size for WindowDataLayer
Merge pull request #1091 from ronghanghu/fix_window_data_layer

set up datum size for WindowDataLayer
Merge pull request #1088 from shelhamer/fix-solverstate-filename

Fix snapshot filename for solver states
[Bugfix] Move error checking closer to file read

Previously, if (height > 0 && width > 0) was true, the
cv::resize() function would be called before cv_img_origin was
confirmed valid; if the image file/filename was not valid, this
caused an opencv assert error like this:

terminate called after throwing an instance of 'cv::Exception'
  what():  /tmp/A3p0_4200_32550/batserve/A3p0/glnxa64/OpenCV/modules/imgproc/src/imgwarp.cpp:1725: error: (-215)
  ssize.area() > 0 in function resize
Merge pull request #1093 from CellScope/io-cant-load-error-msg

[fix] Move file reading error checking closer to actual file read command
Update readme.md files of cifar10 and mnist examples. Fixed broken links.
Updated mnist/readme.md file with additional information.
test convolution against explicit reference implementation

To thoroughly check convolution, the output is compared against a
reference implementation by explicit looping. Simple and group
convolution by the Caffe and cuDNN engines are checked against the
reference.
test convolution by random weights for robustness
[docs] comment ConvolutionLayer
[docs] lenet grooming
Merge pull request #1100 from cNikolaou/issue1099

Polish mnist + cifar10 examples.
Merge pull request #1104 from shelhamer/conv-comments-tests

Document and Test Convolution
use Blob directly instead of shared_ptr for EltwiseLayer::max_idx_

This is in keeping with #742.
add abstract Layer::Reshape, and document the new method protocol