fix #6: SF/192: non-global complex types permit names

Be aware this impacts generated code: in the past these invalid names
were used for the corresponding classes in the generated bindings.  Now
those classes are CTD_ANON instances.
fix #5: SF/173: place a limit on non-deterministic expansion

This is just a safety-check.  With well-designed schema resolution
should never be non-deterministic; in practice, the test suite passes
with this set to 4, but for the real-world we'll increase the limit.
fix #9: SF/222: fix namespace intrusion in enumeration types

Reserve the identifiers associated with enumeration_mixin prior to
specifying the tags by which enumeration values will be registered
within the enumeration binding.
fix #7: SF/214: add facility to replace value of complex type with simple content

Add a semi-public method that validates and stores a new simple value.
BDS refactor: use NSC for default namespace
BDS refactor: bidirectional prefix/ns maps in NSC
BDS refactor: correct spelling of local variable name
BDS refactor: fix initialization and cloning of prefix maps

Cloning from a parent context didn't account for the possibility the
parent mappings might be mutable.  Also fill out the initial prefix set
from the initial namespace set.
BDS refactor: use map to get prefix for namespace
BDS refactor: defer component model validation until needed

Attempts to locate components by expanded name require that a component
model be available.  Simply forming an expanded name does not.
BDS refactor: move generation-related namespace maps into NamespaceContext

NamespaceContext had previously maintained a map of prefix-to-namespaces
as specified by xmlns attributes encountered when parsing.  Now the
declareNamespace function used when generating DOM instances shares the
same data structure.

The semantics of _BDSNamespaceSupport changed slightly: in the past only
some prefixes were stored in the map and all were added to the document.
Now all prefixes are stored in the map, and only ones that were retrieved
through a prefix lookup are added to the document.

This solution should also permit the same namespace to be referenced
through multiple prefixes if desired.
BDS refactor: simplify default namespace directive generation
BDS refactor: support ability to add XMLNS directives manually

When post-processing the DOM tree to add attributes like an
xsi:schemaLocation directive, the user is responsible for ensuring the
declarations for any referenced namespaces are present in the tree.
This commit adds the function that does this.
BDS refactor: fix long-standing "bug"

Commit 6604608083f2e3b for trac/46 from five years ago added a
positional parameter to the NamespaceContext constructor, but didn't
adjust a constructor call for the addition.  This shifted a value
intended for the recurse argument to be passed as the including_context
argument.  The error was not revealed because the default recurse value
was correct, and the control path that would have dereferenced the
invalid including_context parameter was never taken.
BDS refactor: rework NamespaceContext reset semantics

Allow a reset of the namespace prefix map held by a context to preserve
any constructor-provided mappings while discarding those added
post-construction or by processing namespace directives in DOM nodes.
BDS refactor: use NamespaceContext for default BDS context

All default-level functionality is now available in the NamespaceContext
class.
BDS refactor: eliminate _BDSNamespaceSupport

All generic namespace-prefix map functionality is now supported by
NamespaceContext, and the BindingDOMSupport instance can carry the
referenced prefix pairs directly without an intermediate class.
BindingDOMSupport: ensure prefix reference is recorded
interpretQName: raise QNameResolutionError when resolution fails
NamespaceContext: elevate visibility within hierarchy

NamespaceContext will be increasingly relevant once QName interpretation
is correctly implemented.  Highlight that by making it visible directly
within pyxb.namespace rather than hiding it within the resolution
submodule.