prepare release of 0.21
Support multiple custom string conversions.
provide "Cython.Compiler.Main.Version" to keep supporting old PyTables versions that import it from there

--HG--
extra : transplant_source : %B1%BC%5C%CD%A6%EEmr4B%0F%AF%1C%E0yq9%EA%ADX
safely replace all node references when injecting a literal set for set([...])
whitespace
Fix crash when an exception occurs during module init and the stale module gets used later on (after import failure).
This is fixed by no longer cleaning up the global references to module object and module dict, which obviously has the drawback of leaking memory.
docs: mention that static typing with Py3 signature annotations requires the "annotation_typing=True" directive
fix: not setting module reference to NULL in module init function fails to report exception on return
DOC initialize string with bytes

As-is the example doesn't compile.
Merge pull request #321 from kmike/patch-1

DOC initialize string with bytes
fall back to 'default' Sphinx doc theme on old Sphinx versions that lack the 'nature' theme

--HG--
extra : transplant_source : %3E%C7%7C%E0I%E9%84%03%8A%EF%F0z%84%20d%E9%C1%12%AF%3E
copy hexiom2 benchmark over from Python's benchmark suite and apply an initial set of optimisations
docs: make logo integration work with older Sphinx versions
Allow arrays of C++ classes.
fix new hexiom2 benchmark in Py3
minor benchmark tweak
fix explicit <bytes> etc. casts for C++ std::string when auto-decoding is enabled
minor traceback beautification for string conversion helper functions
reduce C code overhead for C++ std::string -> PyObject conversion helpers by implementing them directly in C++ and not Cython
work around PyPy's lack of PyFrozenSet_*() C-API