Refactoring of the Java implementation

- Force compile checking for visitable nodes with abstract method
- Improved readability of Evaluator (inspired by the Ruby one)
Merge pull request #21 from paoloambrosio/master

Small Java implementation refactoring