Make core code compatible with Java 1.7

Graphics-related code is still 1.8, 'cause it uses JavaFX
Split Gradle project into subprojects