CPU-only build

**Note: the CUDA libraries are still required for now.**

- [x] add `CPU_ONLY` flag to Makefile to skip GPU compilation
- [x] stub GPU methods to die and complain if their use is attempted in CPU-only build
- [x] hide GPU code from CPU-only build by preprocessor guards
- [x] collect CUDA includes into a single single header that does actual CUDA or CUDA alternate stubs
- [x] define CPU-only Caffe singleton and SyncedMemory
- [x] separate all CUDA code by guards for CUDA-less CPU-only build

This adds a CPU-only switch to the `Makefile.config` that builds Caffe without compiling any GPU code. When this flag is uncommented

- `make` builds libcaffe.so and libcaffe.a without any GPU compilation at all (not a single call to nvcc).
- `make test` builds the tests as usual.
- `make runtest` only runs the CPU tests.

Mostly I was curious what this would take since it partially addresses #150. With this build we should be able to configure a Travis-CI hook for CPU testing of PRs and such.

Not that we should necessarily merge this as-is or at all however, especially with the grossness of 81791ec, and the macro pollution I added in 871b0ce.

I imagine the #415, BVLC:device-abstraction work would make carrying out the CPU / CUDA separation at compilation simpler. Perhaps this is useful all the same?

What does everybody think?
I have no idea how these diff lines happened, but I've undone them.