Settings API Improvements

* Internal cache functionality to avoid so many calls to `get_option()` which is cached but has some overhead.
* New reset_all() method that clears out a user's own settings.
* New maybe_upgrade() method that upgrades the settings in the database. So far it just migrats `shversion` to `renderer`.