FIX: Options persistence uses program directory

It's supposed to use the user's directory.
Add KeyValueStore that uses JSON
Rename IKeyValue.Value to GetValue
documentation fix
Add IKeyValueStore.GetValueOrDefault
Change IKeyValueStore to use String keys

This will be necessary for generating on-the-fly key IDs. This is functionality that will
play a crucial role in an upcomming feature because what gets stored is specific to an
ItemCategory, but only for VideoGames.
Add Alt+S 'Finish' shortcut key

Also removed some now-unneeded code from ItemProductPage.