Ensures that the tests don't write to any files outside of the /tmp
heirarchy.

This works by replacing the open builtin with one that performs a
check and raises an exception if writing to a file in the wrong place.
It's a bit of a kludge, and certainly incomplete (it doesn't check for
other operations that could write to files, such as os.unlink for
example).  I experimented with some Unixy way to drop permissions like
this, and it seems the standard way is to setuid to nobody, but that
requires running as root in the first place, so not really appropriate
here.  Despite the incompleteness, I think this is better than
nothing.
Create temp files in the /tmp tree -- it makes it safer if an exception accidentally leaves a tempfile on the filesystem.
Make the restricted_open function work for py.test's .pyc cache files.
Replace restricted_open with the real one after tests have been run.
Move the config and cache directory faking into conftest.py plugins from the test command itself.
Fix for new place that junit.xml is stored.
hopefulles solves #909
fix typo
Fix failure when adding a row to an empty masked Table

Also fixed another issue where (with masked table) calling
add_row() would add a row copying the first row instead of the
advertised behavior of adding a row of "zeros".  The docstring
was clear that it should be zeros.
Merge branch 'fix909' of github.com:hamogu/astropy into fix909
Improve according to suggestions in discussion on #909
This should fix issue #968; this handles the situation in the following way:

If opening a file in a writeable mode a warning is raised and mmap is
disabled even if it was explicitly asked for.  This is done through a
new check that mmap.flush() is available--this check is performed on all
platforms and should require minimal overhead but we'll see... (the
check is only performed the first time an attempt is made to open a file
in writeable mode)
Added a note in the known issues page and a changelog entry
hopefulles solves #909
fix typo
Improve according to suggestions in discussion on #909
Fix syntax issue on Python 3
Add missing byte literal marker needed for Python 3 (since mkstemp automatically opens the file in binary mode)
Merge remote-tracking branch 'github/fix909' into fix909
update tests to return string

Also, I added a check to test if format functions return a string (only
once, when it is called first). This will be a common source of error
and this test allows us to provide a meaningful error message
for 95% of all cases.
- Simplify handling of parameters
- Allow a parameter of type array
- Allow models to have parameters of mixed type, e.g. a number and an array
- Add some validation for multiple parameter sets
- Allow Gaussian models to have multiple parameter sets