Allow custom preferences locations on desktop,

See #918
- Implemented for Lwjgl and jglfw desktop backends
- Implements the alternative solution, instead of forcing XDG-compliancy
we allow the developer to choose
-Backwards compatible with old system by default