Changing project structure A LOT.

Moving all source files under source, including library source. The
subdirs under src might still be a little non-standard but I like them
the way they are now. All libs, apps, and tests are there so everything
source-wise that needs to be build will be under that dir.

Since I moved test under src, I no longer need a qa folder. I have moved
the build script to the top-level and fixed it so that it makes the build
dir correctly. Had to fix a few small errors dealing with placement of
the script.

Creating new CMakeLists.txt for the new dirs.