Avoid using cudaMemcpy for memcpy when there is no GPU and CUDA driver
Check the GPU mode to decide which memcpy to use
Switch to GPU mode when pointer is move to or from GPU in SyncedMemory
Implement @Yangqing's solution to copy memory in the SyncedMemory
Replace cudaMemcpy with caffe_gpu_memcpy in SyncedMemory per @longjon
Merge pull request #633 from kloudkl/cpu-only-memcpy

Support CPU only memcpy
use layer_param instead of layers_[layer_id]->layer_param()
Add param_propagate_down_ vector to layer, populate according to
blobs_lr in Net::Init
Make ConvolutionLayer and InnerProductLayer abide by param_propagate_down_
Use Blobs instead of SyncedMemorys for the bias_multiplier_'s.