Create saveToLine() in Flatfile Manager, fix purging bug

This commit fixes the situation in which a user joins (newUser() is called), then a scheduled purge happens (purgePowerlessUsers(), removing them), then saveUser() is called. saveUser() will not write anything in this case. To fix this, a boolean variable is added, and the user will be added at the end of the file if no entry for them exists.

Because of the Rule of Three Reuses, the player saving code is split out to a method, saveToLine(PlayerProfile), and it is now used in newUser().