Huge Java detection refactor, version dialogs on first run (no JavaPath set) and "auto detect" button