Refactored Settings Defaults

I refactored how settings and their defaults are done so that the default is in exactly one place.  Also, as I was adding a setting, our check for cyclomatic complexity prohibited having the chain of if-elif for validation, so I refactored validating settings to call subfunctions.  I also added methods to get the default value of a setting and to check if a setting was using its default value (which is distinct from just having the default value).