Add configurable settings to Site Settings

extended_settings config file uses similar syntax to user_meta to
configure an "Extended Settings" tab on the Site Settings page. Config
file sets what settings are included on this tab as well as permissions
required to view them, the valid values, and the controls used to render
them.

The extended settings are saved to the existing settings table in the
database.

If the 'extended_settings_fields' config array is empty, the tab is not
displayed on the Site Settings page.

This is a re-submit and fixes the merge issues on #756. This implements
the "Planned" item from the roadmap: https://trello.com/c/SADM7rd3