Refactored some code to improve readability
- Refactored some code to improve readability (OptionAccessor was confusing, so I aliased it to 'CommandLineInput' to try and be more obvious)
Added support for integration tests
Abstracted the exe-building logic from build.gradle to build-executable.gradle