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
Typo fixes
Merge pull request #1137 from Unkn0wn0ne/experimental-changes

Allowed custom preferences locations on desktop.