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