* Save preferences JSON using UTF-8 encoding. Bulletproof prefs load.
Fixes#2543. Fixes#2627.
Always use UTF-8 to write JSON because platform default encoding
might not be legal JSON (e.g. ISO 8859-1).
Also be more conservative about keeping backups if we fail to write.
* Handle case where backup prefs is better than more recent
* Recover from corrupted prefs with null starred list.
Fixes#2544. Replaces null with an empty list.
* Run tests with non-UTF-8 encoding
Make sure that we don't depend on UTF-8 being the default encoding
because it isn't true everywhere (e.g. Windows)
* Add test for non-ASCII chars in workspace.json
This depends on the default Java encoding being something
other than UTF-8 to test properly.