This merge adds a few basic tests for the GroupsHDU feature, which previously
had almost no testing.  It also fixes several bugs with it and brings it a bit
more closely inline with the TableHDU interface:

 * Fixed the bug reported in #130 where the values of the PTYPEn keywords were
   always being forced to be lowercase.
 * Fixed slicing of GroupData arrays to return new GroupData arrays, as should
   be the case (and as is the case with a normal FITS_rec object).
 * Fixed slicing of Group objects, which didn't really work properly at all.
 * Made Group objects a public interface (previously they were called _Group).

Although this does represent a change in behavior, the previous behavior could
be considered a bug.

Squashed commit of the following:

commit c759001edac0711d518969ed6fa089dbdb0e827c
Author: Erik Bray <embray@stsci.edu>
Date:   Thu Mar 29 08:13:43 2012 -0400

    One more groups test that really helps test out more of the GroupData features.  Also added a check in the GroupData constructor, without which a very non-obvious error can occur later.

commit 439e40278f268145eb38883903e19d7a1e18c94b
Author: Erik Bray <embray@stsci.edu>
Date:   Wed Mar 28 18:17:20 2012 -0400

    Added a couple more simple tests and some fixes required to make them work (also removed some unnecessary cruft).  Boosted test coverage to 80%.

commit 0cca0f67e0f3d13a22e5106fb539971865bd1715
Author: Erik Bray <embray@stsci.edu>
Date:   Wed Mar 28 16:09:42 2012 -0400

    Reworked the code for creating a new GroupData object from a non-recarray.  I still think this interface is a tad clumsy, but it is what it is, and there's not enough incentive to try to improve it right now.

commit 70c31f4bf2678f0f72280cd87fa0b3fed427bdeb
Author: Erik Bray <embray@stsci.edu>
Date:   Mon Mar 26 18:57:12 2012 -0400

    Ack! Accidental typo in last commit.  My fingers are too fat.  I will be rebasing when I merge this branch anyways.

commit 53bcbfd6d4aa190a0ac6d139e7701a49e51ed65d
Author: Erik Bray <embray@stsci.edu>
Date:   Mon Mar 26 17:32:56 2012 -0400

    Removing some commented-out stuff that doesn't appear necessary anymore.

commit b7e12d6814db9e6375000005653fcc5b11f1bf8e
Author: Erik Bray <embray@stsci.edu>
Date:   Mon Mar 26 17:09:12 2012 -0400

    The first small set of basic group HDU tests and some fixes to get those tests working.  In particular this fixes issue #130, where parnames were being forced to lowercase in the header.  This also fixes an issue where slicing GroupData did not return a new GroupData array as one would expect.

git-svn-id: http://svn6.assembla.com/svn/pyfits/trunk@1422 ed100bfc-0583-0410-97f2-c26b58777a21
Synced the changelog in trunk with the changelog from the 3.0-stable branch.

git-svn-id: http://svn6.assembla.com/svn/pyfits/trunk@1424 ed100bfc-0583-0410-97f2-c26b58777a21
Added a slightly different version of the patch from #133 to remove excessive import calls in `ExtensionHDU.__setattr__`, and added a test to ensure that this change didn't break the desired functionality of pyfits.EXTENSION_NAME_CASE_SENSITIVE

git-svn-id: http://svn6.assembla.com/svn/pyfits/trunk@1426 ed100bfc-0583-0410-97f2-c26b58777a21
Added a changelog entry for the previous fix.

git-svn-id: http://svn6.assembla.com/svn/pyfits/trunk@1427 ed100bfc-0583-0410-97f2-c26b58777a21
Fixed an unintended parsing and verification of ever header card upon opening a file, as reported in #135. Thanks jtaylor!

git-svn-id: http://svn6.assembla.com/svn/pyfits/trunk@1432 ed100bfc-0583-0410-97f2-c26b58777a21
Remove a superfluous call to Card.normalize_keyword.  This will get called again anyways in a few lines.

git-svn-id: http://svn6.assembla.com/svn/pyfits/trunk@1442 ed100bfc-0583-0410-97f2-c26b58777a21
Remove another inline import that was affecting performance upon opening files.

git-svn-id: http://svn6.assembla.com/svn/pyfits/trunk@1443 ed100bfc-0583-0410-97f2-c26b58777a21
Fixe a misspelled test function

git-svn-id: http://svn6.assembla.com/svn/pyfits/trunk@1444 ed100bfc-0583-0410-97f2-c26b58777a21
A fix an regression test for #136. Superfluous end-of-file padding is still supported, but it doesn't assume that nulls at the end of a header block are necessarily the end of the file, but rather just a malformatted header block.

git-svn-id: http://svn6.assembla.com/svn/pyfits/trunk@1445 ed100bfc-0583-0410-97f2-c26b58777a21
Fixes up some of the spaghetti code in the Card class to make a little more sense in how it deals with managing the string representation of a value in a header (so that it only gets updated when actually necessary, such as in the case of misformatting).  This addresses all the issues brought up in #137 and adds some more new regression tests.

git-svn-id: http://svn6.assembla.com/svn/pyfits/trunk@1446 ed100bfc-0583-0410-97f2-c26b58777a21
Changelog update for some of the recent fixes that I hope to include in 3.0.7

git-svn-id: http://svn6.assembla.com/svn/pyfits/trunk@1447 ed100bfc-0583-0410-97f2-c26b58777a21
Updated the format of the changelog for 3.1, and moved the fixes from #137 from 3.0.7 to 3.1.  As explained in the ticket #137, it was just too difficult to apply these fixes to 3.0.7.

git-svn-id: http://svn6.assembla.com/svn/pyfits/trunk@1452 ed100bfc-0583-0410-97f2-c26b58777a21
Starting experimenting with some fixes to make the GroupsHDU look more like TableBaseHDU.  Still not getting anywhere with the memory leak though...

git-svn-id: http://svn6.assembla.com/svn/pyfits/trunk@1453 ed100bfc-0583-0410-97f2-c26b58777a21
This should solve the problem reported in #138. I'm not super happy
with this, but it should work.  The `_TableLikeHDU` class is updated to have
a `_data_type` class attribute, which by default is `FITS_rec`. But for
`GroupHDU`s it's `GroupData`.  This allows the data for a group HDU to be
created directly as a `GroupData` object, rather creating a `FITS_rec` object
and wrapping it.  The old behavior is what was causing problems.

Of course, there's nothing inherently wrong with wrapping one array type in
another.  In this case the problem was specifically related to the same design
issue that's repeatedly caused reference cycle problems for pyfits tables,
which is that each `Column` object has a `.array` attribute which holds a
reference to the recarray that contains the column.  This creates all kinds of
reference cycle issues.

Eventually PyFITS will switch over to using the Astropy table interface, which
should free up a lot of these issues.  But in the meantime this will have to
do.

git-svn-id: http://svn6.assembla.com/svn/pyfits/trunk@1454 ed100bfc-0583-0410-97f2-c26b58777a21
Squashed commit of the following:

commit 2872008aa27e584160da7e7aa2930b1847ddc1f1
Author: Erik Bray <embray@stsci.edu>
Date:   Fri Apr 6 17:49:49 2012 -0400

    Yup. The previous refactoring really made this easy to fix.  Now table data will *always* be scaled back before writing, and if necessary the header will be updated to reflect any post-scaling changes to the data.  Then the header is written (if necessary) and the data written (again, only if necessary).

commit d7237ecd79727c29653df62a3654e7db4216844b
Author: Erik Bray <embray@stsci.edu>
Date:   Fri Apr 6 17:26:12 2012 -0400

    Something that's needed doing for a while.  Moved most of the logic for writing updates to an existing file into the _BaseHDU._writeto method, and out of the HDUList.flush method.  Added a new 'inplace' flag to _writeto which, if true, basically means 'write back to the same file that was read from, with no resizing'.  Moving this into the _writeto method takes a lot of burden off of HDUList, and gives individual HDU types more control over how to write to files when writing a new files vs. writing updates to an existing file.  This change will make it much easier to implement the final step of this fix, which is to ensure that table data gets scaled back before writing changes to the header or the data.

commit 0d5dee52603ce56d2d5d6148fdffdf9fd1b32f93
Author: Erik Bray <embray@stsci.edu>
Date:   Fri Apr 6 16:25:15 2012 -0400

    Finally moved the code for doing a flush in 'update' mode to its own function, as it's a rather large, complicated routine. It might be worth breaking up into two more functions for updating with resizing, or updating in place.  But this is at least better for now...

commit 6325f1130286cceea749e74d9afacd815217654e
Author: Erik Bray <embray@stsci.edu>
Date:   Thu Apr 5 15:42:09 2012 -0400

    A test that demonstrates the problem

git-svn-id: http://svn6.assembla.com/svn/pyfits/trunk@1456 ed100bfc-0583-0410-97f2-c26b58777a21
Fixes #123 (trivial) and adds a regression test (much more involved than the fix itself).

git-svn-id: http://svn6.assembla.com/svn/pyfits/trunk@1458 ed100bfc-0583-0410-97f2-c26b58777a21
Some more updates to the automated release website update script to reflect changes to the website. The generated HTML for the release notes is tidied up properly to fit into the new site template, and the pages that need to be updated are fixed.

git-svn-id: http://svn6.assembla.com/svn/pyfits/trunk@1460 ed100bfc-0583-0410-97f2-c26b58777a21
changelog updates in preparation for 3.0.7 release

git-svn-id: http://svn6.assembla.com/svn/pyfits/trunk@1461 ed100bfc-0583-0410-97f2-c26b58777a21
Wrap the string 'np.bool_' in backticks.

git-svn-id: http://svn6.assembla.com/svn/pyfits/trunk@1463 ed100bfc-0583-0410-97f2-c26b58777a21
Small documentation formatting fix

git-svn-id: http://svn6.assembla.com/svn/pyfits/trunk@1465 ed100bfc-0583-0410-97f2-c26b58777a21