This serves to made the context representation more useful (the names in
match the names out).
Removed the link to ReXX. That document did not shed add anything to
information already in the spec.
Further tighten the public API to improve usability:
* Emax and Emin are set through Context(). Their defaults are set in the
DefaultContext, so there is no need to expose DEFAULT_MAX_EXPONENT
and DEFAULT_MIN_EXPONENT.
* The string functions isnan() and isinfinity() were only used internal to
the module and were not among the test cases. External use cases are
served by the Decimal constructor. So, made these private.
* delete temporary globals immediately after use
* move a global into a class variable
* Rename BasicDefaultContext and ExtendedDefaultContext
to BasicContext and ExtendedContext.
* Added test for pickling contexts
* Renamed ExceptionList to Signals (to match wording in the spec)
* Simplified Context constructor by allowing flags=None to automatically
generate a zeroed-out flags dictionary.
* inlined _convertString() which was used only once
* _rounding_decision is private, so excluded its contants from __all__.
* added an XXX comment with concerns about subclassing signals results in
a deviation from the spec (maybe important, maybe not).
* Taught the test_suite to determine its own directory (modeled after code
in regrtest.py). Enables it to be run when the current directory is not
the test directory.
* Added a clear_flags() method to the Context API to make it easier to do
a common operation with flags.
* Fixed the trap_enablers defaults in BasicDefaultContext to match the spec.