Basic implementation.

Basic implementation with gitignore and gitattributes. This version is
not easy to test and will need refactored into more manageable chunks.