Ensure that PY_ARRAY_UNIQUE_SYMBOL is uniquely defined for each extension.

By using a unique symbol for each extension we prevent multiple
definition linking errors which arise when statically linking
a Python interpreter.

Closes gh-2039.
Merge pull request #2049 from mdboom/create-testing-cache-using-cbook-makedirs

Fix parallel testing by using the multi-process safe cbook.mkdirs
Merge pull request #2041 from mdboom/doc-fixes-1-3

Fix a number of issues in the doc build
Merge pull request #2042 from bfroehle/py_array_unique_symbol

Ensure that PY_ARRAY_UNIQUE_SYMBOL is uniquely defined for each extension
On Linux, use the XDG base directory specification for configuration and cache directories