Add CompilerMate*, Config and ProjectBuilder classes

News:
- Use JSON as the format of configuration file, and use library GSON to
  read and write configuration file.
- Use JLine2 for implementing command line interaction.
- Add CompilerMate interface for describing compilers.