Reimplemented the code that backed the "settings" in lldb. There were many issues with the previous implementation:
- no setting auto completion
- very manual and error prone way of getting/setting variables
- tons of code duplication
- useless instance names for processes, threads

Now settings can easily be defined like option values. The new settings makes use of the "OptionValue" classes so we can re-use the option value code that we use to set settings in command options. No more instances, just "does the right thing".

llvm-svn: 162366
diff --git a/lldb/test/help/TestHelp.py b/lldb/test/help/TestHelp.py
index 736a92f..839874d 100644
--- a/lldb/test/help/TestHelp.py
+++ b/lldb/test/help/TestHelp.py
@@ -87,7 +87,10 @@
 
     def test_help_should_not_hang_emacsshell(self):
         """Command 'settings set term-width 0' should not hang the help command."""
-        self.runCmd("settings set term-width 0")
+        self.expect("settings set term-width 0",
+                    COMMAND_FAILED_AS_EXPECTED, error=True,
+            substrs = ['error: 0 is out of range, valid values must be between'])
+        # self.runCmd("settings set term-width 0")
         self.expect("help",
             startstr = 'The following is a list of built-in, permanent debugger commands')