customize compiler setting in Makefile.config

in case of issues with default compilers or exotic platforms.
Update caffe.proto

Add pad_h, pad_w, kernel_size_h, kernel_size_w, stride_h, stride_w to support pooling on rectangle regions.
Update vision_layers.hpp

Replace pad_, kernel_size_, stride_ with pad_h_, pad_w_, kernel_size_h_, kernel_size_w_, stride_h_, stride_w_ to support pooling on rectangle regions.
Update pooling_layer.cpp

Replace pad_, kernel_size_, stride_ with pad_h_, pad_w_, kernel_size_h_, kernel_size_w_, stride_h_, stride_w_ to support pooling on rectangle regions.
Update pooling_layer.cu

Replace pad_, kernel_size_, stride_ with pad_h_, pad_w_, kernel_size_h_, kernel_size_w_, stride_h_, stride_w_ to support pooling on rectangle regions.
fixing pooling SetUp() to allow default values for stride and pad
add tests for rectangular pooling regions
Merge pull request #611 from shelhamer/makefile-config-cxx

Customize compiler setting in Makefile.config
fixed style errors
added gradient check for non-square pooling
Merge pull request #614 from ronghanghu/rectangular_pooling

Rectangular pooling
Extend the ArgMaxLayer to output top k results
Add the test cases for the mulitple top predictions argmax layer
Simplify the top-k argmax layer using std::sort