Implement basic project type detection.

The project type detection is based on the project
directory structure and can be used in the future
to select correct compile and test commands and to
intelligently switch between implementation and test files.