Cleaned up/simplified error-handling:
  - DistutilsOptionError is now documented as it's actually used, ie.
    to indicate bogus option values (usually user options, eg. from
    the command-line)
  - added DistutilsSetupError to indicate errors that definitely arise
    in the setup script
  - got rid of DistutilsValueError, and changed all usage of it to
    either DistutilsSetupError or ValueError as appropriate
  - simplified a bunch of option get/set methods in Command and
    Distribution classes -- just pass on AttributeError most of
    the time, rather than turning it into something else
diff --git a/Lib/distutils/errors.py b/Lib/distutils/errors.py
index f9d5c8d..61cdb72 100644
--- a/Lib/distutils/errors.py
+++ b/Lib/distutils/errors.py
@@ -46,15 +46,18 @@
     class DistutilsFileError (DistutilsError):
         pass
 
-    # DistutilsOptionError is raised anytime an attempt is made to access
-    # (get or set) an option that does not exist for a particular command
-    # (or for the distribution itself).
+    # DistutilsOptionError is raised for syntactic/semantic errors in
+    # command options, such as use of mutually conflicting options, or
+    # inconsistent options, badly-spelled values, etc.  No distinction is
+    # made between option values originating in the setup script, the
+    # command line, config files, or what-have-you.
     class DistutilsOptionError (DistutilsError):
         pass
 
-    # DistutilsValueError is raised anytime an option value (presumably
-    # provided by setup.py) is invalid.
-    class DistutilsValueError (DistutilsError):
+    # DistutilsSetupError is raised for errors that can be definitely
+    # blamed on the setup script, such as invalid keyword arguments to
+    # 'setup()'.
+    class DistutilsSetupError (DistutilsError):
         pass
 
     # DistutilsPlatformError is raised when we find that we don't
@@ -82,7 +85,6 @@
     DistutilsArgError = 'DistutilsArgError'
     DistutilsFileError = 'DistutilsFileError'
     DistutilsOptionError = 'DistutilsOptionError'
-    DistutilsValueError = 'DistutilsValueError'
     DistutilsPlatformError = 'DistutilsPlatformError'
     DistutilsExecError = 'DistutilsExecError'
     DistutilsInternalError = 'DistutilsInternalError'