Fix failing tests due to resource renamings
Add gitignore for eclipse environments
Refactor language trait hierarchy classes

This refactoring introduces a refined hierarchy model of language traits,
introducing AbstractLanguage as a top-level base implementation.
It helps us to organize and maintain the codes more easily and concisely.

Cpp, Java, CSharp are now subclasses of CStyleLanguage,
and Python is not a C-style language anymore.
Convert previous template testes into JUnit test class

This commit also involves a refactoring to extract the common code on
building template models used in the test, and fixes the resource path.
Merge pull request #47 from wookayin/refactor-lang

Refactor on language trait classes and template tests