Input validation refactoring

- input validation extracted as separate builder-style class - InputValidator. Multiple validation statements can be grouped together
- InputValidator uses Lambda expressions therefore Java version was increased to JDK 8