shift CUDA code out of common
groom proto: sort layer type paraemeters, 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