consolidate build rules for object files
automatic discovery of source directories
move cuda output from build/.../.cuo -> build/cuda/.../.o

This will allow nvcc's -M dependency generation option to work
harmoniously, since it assumes that output will have a .o extension.
check host malloc result
Added bvlc_googlenet prototxt and weights
Merge pull request #1598 from sguada/bvlc_googlenet

Added bvlc_googlenet prototxt and weights
Added credits for training bvlc models
Added credits and bvlc_googlenet to model_zoo.md
Merge pull request #1608 from sguada/added_credits

Add credits for training BVLC Models
Merge pull request #1585 from longjon/check-malloc

Check host malloc result
update use of GetLayer -> LayerRegistry::CreateLayer
Merge pull request #1636 from longjon/get-layer-gone

Holiday merge - Update use of GetLayer to new registry function
automatic dependency generation
Merge pull request #1472 from longjon/incremental-build

Makefile improvements: rule consolidation, dependency generation
add BaseConvolutionLayer

This provides a common place for code used by ConvolutionLayer and
DeconvolutionLayer, simplifying the implementations of both.
add CPU_ONLY ifdef guards to BaseConvolutionLayer
rewrite ConvolutionLayer to use BaseConvolutionLayer helpers
add DeconvolutionLayer, using BaseConvolutionLayer
add util/coords.hpp for coordinate mapping functions

This will be useful for keeping track of the coordinate transformations
induced by, e.g., convolution and pooling layers.
add FilterMap for the coord mapping used by (de)conv and pooling layers