Attempt clean recovery from an unloaded PlayerProfile

This change should cause McMMOPlayer to create a graceful recovery when the database is temporarily unavailable.
When a McMMOPlayer is constructed and recieves an unloaded PlayerProfile, it schedules a task to re-attempt profile retrieval. This task can run for a maximum of 5 seconds, after which a second warning is printed indicating that it has given up (and a message given to the user).
Do not save an un-loaded PlayerProfile
Flatfile loadProfile - place newUser() inside of try block

This fixes incorrect behavior in the edge-case where an IOException occurs when reading (but not writing) the flatfile database.