move using statements inside namespace caffe to avoid polluting the whole name space.
neuron_layers.hpp should not need to include leveldb
configure Makefile for CPU-only build
stub out GPU layer methods to crash loudly in CPU-only mode
add guards to drop GPU code in CPU-only mode
collect CUDA includes and calls, separate from CPU-only mode, leave out

- collect CUDA includes in device_alternate.hpp
- add guards for CUDA code
- move GPU code into cu from cpp
- make CUDA includes and libraries conditional in Makefile
- drop CUDA dependency from travis-ci build
switch travis build to CPU-only flag, drop runtestnogpu target
relax benchmark test timing for cheap hardware / CI build
check CPU-only everything, CPU + GPU build with travis
Merge pull request #561 from shelhamer/cpu-only-build

CPU-only build

no GPU, no CUDA, no problem!
compute_image_mean namespace fix.
Merge pull request #716 from Yangqing/dev

Minor Code Cleaning
Add loss_weight to proto, specifying coefficients for each top blob
in the objective function.
Add net tests for loss_weight -- check that the loss and gradients
throughout the net are appropriately scaled for a few loss_weight
values, assuming a default weight of 1 in the loss layer only.  Also
modify test_gradient_check_util to associate a loss of 2 rather than 1
with the top blob, so that loss layer tests fail if they don't scale
their diffs.
Generalize loss by allowing any top blob to be used as a loss in which
its elements are summed with a scalar coefficient.  Forward for layers
no longer returns a loss; instead all loss layers must have top blobs.
Existing loss layers are given a top blob automatically by Net::Init,
with an associated top_loss_weight of 1 (set in LossLayer::FurtherSetUp).
Due to the increased amount of common SetUp logic, the SetUp interface
is modified such that all subclasses should normally override FurtherSetUp
only, which is called by SetUp.
-Add tests for the case of multiple losses, one in the middle of the
network.  Make this case work by inserting split layers (and add another
SplitInsertion test).
-Add test that we can call Backward with an ACCURACY layer.  This
currently fails, but should be possible now that we explicitly associate a
loss weight with each top blob.
Net::Init can determine that layers don't need backward if they are not
used to compute the loss.
AccuracyLayer only dies when necessary.
Disallow in-place computation in SPLIT layer -- has strange effects in
backward pass when input into a loss.
Also display outputs in the train net.  (Otherwise, why have them?)