Added initial Hinge Loss
shift CUDA code out of common
groom proto: sort layer type parameters, put loss_weight after basics
add engine parameter for multiple computational strategies

add `engine` switch to layers for selecting a computational backend when
there is a choice. Currently the standard Caffe implementation is the
only backend.
ifdef engine default
strategize Caffe convolution
strategize pooling

Scaffold engine switching for pooling.

The Caffe pooling is instantiated without regard for engine in:
- LRNLayer
- PoolingLayer tests
- StochasticPoolingLayer tests
- MaxPoolingDropout tests
strategize relu, sigmoid, tanh
strategize softmax
grooming: drop pointless overrides, stub layer comments
default engine to Caffe according to compile flag
default engine to Caffe in case config is missing
revert engine switch for build to always include caffe engine
revert separate strategies: engines will extend the caffe standards
Merge pull request #1022 from shelhamer/engine

Add engine switch to pick computational backend
[docs] fixup the MathJax notation in tutorial/layers
[doc] minor edits to convolution layer in tutorial
[docs] fix pooling markdown and add some comments in tutorial
[docs] add LRN layer to tutorial/layers
[docs] split layer params in required/optional

Also, make the parameter name come first. This makes it much easier to
find/scan parameters.