Store plClient password using platform-specific credential storage.

Add an abstracted password-storage system, and utilize it in plClient to replace the drive-based obfuscation.
It seems to me that the real issue here is the non-unique UUIDs.  Is that something we can fix properly without breaking everything, or should we workaround it here instead?