CMake build system (feature development tracking PR)

This PR will officially track the development of the CMake build system for Caffe until it's ready to be merged into dev.   I've taken #573 from @akosiorek (currently rebased on the latest dev, thanks!) and force pushed it to BVLC's `cmake` branch.  Future changes to the cmake build system should be PRed against the `cmake` branch (rather than the normal `dev` branch) until its official merge into `dev`.  The cmake branch will periodically need to be rebased on dev by someone developing it if it is to be merged; I will force update the cmake branch (and therefore this PR) when that's done.  See @shelhamer's very nice explanation of this process in his 2nd followup comment on #610 for details.

TODOs for merge into dev:

- [x] Rebase onto dev
- [x] Verify that (or fix such that) the Travis CI build checks still pass in the current state of the `.travis.yml`.
- [x] Modify `.travis.yml` to also successfully perform the CMake build steps, keeping all the current make build steps intact.  (You should probably add `make clean` after the make steps are done, and then add the CMake build steps)
- [x] Add libgflags