Refactored Settings and some initial work to allow a user to set an optional property even after spark context is started.