Split code organization into client/server/common.

Just using dummy files here to show how the project should be set up.
CMakeLists.txt cleanup, using the new project structure.

Also includes explicit compiler options, determined Google Test revision
checkout, renaming build_tests to enable_tests and using this option by
default, and overall cleanup.
Use debug builds in Travis.
Update README with the new build instructions for Ubuntu.