* Add speech rate setting
* Add volume slider
* New speech manager skeleton
* User API key from resx
* Implement voice list retrieve via new api
* Rewrite to use ObAPI, remove all dependancies
* Use volume setting
* Clean up using statements
* Volume and timing adjustments
* Lookup rate value
* Use numeric rates for tighter spread
* Manage plugin data folder via core interface
* Add check that nullable settings are not null.
* Get file size before it's deleted.
* Improve old settings migration.
* Ignore cache sizes below 1MB
* Re-index orphaned files in cache, purge legacy wav files.
* Call top level error logging for native voice exception.
* Async title and detail requests to remove pause
* Remove NetCoreAudio use of temp files.
* Remove orphan using.
* WIP: initial commit for observatory herald
* Plugin error handling refactor
* make error window non-modal
* tidy up plugin error handling
* first pass for basic herald functionality
* corrections for linux env
* Use FNV hash directly instead of managing through dictionary/index file
* resolve audio queuing issue, switch to personal NetCoreAudio fork
* merge cleanup
* add enable setting, populate defaults
* framework xml doc update
* Adjust settings, add style selection, replace locale with demonym in dropdown list.
* Test is position is on screen before saving/loading.
* use a default that's actually in the list