Merge pull request #158 from mdboom/setup/fix-sdist

Fix setup.py sdist
Merge pull request #166 from mdboom/vo/missing-datatype

Parse non-compliant VOTable-1.1 files from Chandra footprint server?
Merge pull request #160 from mdboom/xml/symbol-clash

Only export the Python extry points from iterparse.so.
Add *.map files to sdist
remove info()
Testing out autopep8.  It can't fix things like too-long lines, but it does a perfectly nice job on really fussy things like whitespace around operators.  Still, you wouldn't want to run it blithely over your entire codebase.  There are several things that it 'fixes' that are really not as readable afterwards.  As PEP8 itself warns: 'A foolish consistency is the hobgoblin of little minds.'
final changes
This lessens the need for `__init__.py` files to check `is_in_build_mode()` to optionally turn off importing other things in their package that may require 2to3 or C extensions to have been built.

The real cause of `__init__.py` files being imported at build time was due to a `setup_package.py` file within that package being imported.  By importing the file using `imp.load_module()` rather than `importlib.import_module()`, we can import the file as a standalone module without causing an import of its parent package as a side effect.  This allows (in many cases) for the `__init__.py` to not need to block the import of 2to3 or C extension code because the `__init__.py` is not longer imported at build time.

However, there is still a special case in `astropy.wcs` where the package itself is needed at build time, so a call to `is_in_build_mode()` has been added there.  However, that case is an exception, not the norm.

Also in this change: The setup script currently tries to import the legacy module (vo, pyfits, pywcs) to see if it's in fact `pyfits` or astropy's legacy shim that masquerades as `pyfits`.  However, if it's the latter, and it's imported at build time, and `astropy` has been uninstalled but its `pyfits` legacy shim has not been (a corner case if there ever was one), importing the legacy shim will result in importing pyfits from the source tree which doesn't work because it requires 2to3 and has C extensions.  The change here is to rather than import the legacy shim, to just open it as a file and look for the magic variable name `_is_astropy_legacy_alias`.
Make sure PY3K is defined for building the _compiler module.  For some reason it builds fine with Python 3 without this on Linux, but on Windows this is needed.
One more Windows fix--fixes io.fits so that it can be compiled by MSVC.  Need to fix this in PyFITS too, I guess.
Make sure to use the relative path for all C extension source files.  Otherwise distuils' MSVC compiler generates some potentially long (too long for Windows) pathnames in the build\temp dir for various compiler artifacts.  (This was particularly problematic in Jenkins, where having multiple configuration matrix axes can make for long path names.)
This should fix #147.

The real explanation comes from the Python 3.2 docs for the subprocess module:

"If close_fds is true, all file descriptors except 0, 1 and 2 will be closed
before the child process is executed. (Unix only). The default varies by
platform: Always true on Unix. On Windows it is true when stdin/stdout/stderr
are None, false otherwise. On Windows, if close_fds is true then no handles
will be inherited by the child process. Note that on Windows, you cannot set
close_fds to true and also redirect the standard handles by setting stdin,
stdout or stderr.

Changed in version 3.2: The default for close_fds was changed from False to
what is described above."

This was changed in Python 3.2 such that the default value for close_fds is no
longer False on Windows.  Although I haven't examined this too closely, I think
that what happens is that since close_fds is now True by default, when we run
the test command in a subprocess, the subprocess does not inherit the actual
stdin/stdout/sderr handles, which is not a scenario expected by py.test's I/O
capture.

Setting close_fds=False is fine on all platforms for our purposes.  I tested
this in Linux too with my staging build.
Make astropy.wcs linkable from C on Windows.

This is a backport of r2510 in pywcs.

On Windows, we need to define some macros to prevent importing wcsset() from the "standard" library, which conflicts with the wcsset() in wcslib.  These macros need to be defined both for building astropy.wcs itself and for any external C libraries that link to it.
Merge pull request #168 from taldcroft/table-format

Add support for both new- and old- style formatting
Merge pull request #147 from iguananaut/issue-147

Crash running setup.py test on Python 3.2 in Jenkins
Document the `is_in_build_mode` function.
Merge pull request #173 from mdboom/wcs/windows-fixes

wcs: Windows C linking fixes
Initial version of 2-d convolution, with different treatments for edges
Renamed to follow scipy convolve convention. Improved docstring.
Moved convolution routines to astropy.nddata (scipy has them in scipy.ndimage)