Get this stuff organized

Reogranized source files and added .gitignore file so I won't have to
bother with all the build system cache files when uploading sources to
repository. No functional change.