Review GFits interface definition.

The GFits class now derives from GContainer and implements all generic container class methods (at(), size(), isempty(), set(), append(), insert(), remove(), reserve(), extend()). The hashdu() method has been renamed to contains() for compliance with other container classes. The hdu() methods have been renamed to at(), also for compliance. Boolean arguments are now passed as const references, and members are returned as const references. HDU access operators[] have been implemented to access FITS extensions without range checking.
Create exception test case if an exception occurs on an empty stack.

Before some exceptions were missed, in particular those occuring on de-allocation of an object after the try_success() method has been called. For these cases, a dummy exception test case is created and the exception is tracked.
Properly deleted empty FITS file.

If a FITS file is created using the open() method and if HDUs have been appended to this FITS file, the GFits::close() method (or the destructor) resulted in an exception due to an invalid filepointer. The result FITS file was empty, with a single "END" statement.

Now, the m_created flag is used to signal that a file has been created but not yet saved. Calling the GFits::save() method will set the flag to false. The GFits::free_member() method will delete the FITS file if m_created is still true.
Add gammalib::reduce() function to reduce the chattiness level by one.
Comment out unit tests for saved FITS files until HDU consistency is assued (issue #37).
Support FITS file HDU manipulations.

The GFits class allows for flexible HDU manipulation using the container methods set(), append(), insert(), remove() and extend(). So far the code was unable to save correctly a manipulated FITS file. This has now been corrected for. If for a given extension number the type of a HDU has changed during manipulations (e.g. an image has become a table or vice versa), the old HDU is deleted and a new HDU is inserted in place. Also, exedent HDUs that are not present anymore in the GFits object will be removed from the FITS file upon saving.
Review GFitsHeader class.

The GFitsHeader class now derives from GContainer and implements all generic container class methods (at(), size(), isempty(), append(), insert(), remove(), reserve(), extend()). The hascard() methods have been renamed to contains() for compliance with other container classes. The card() methods have been renamed to at(), also for compliance. The card access operators and methods now return the cards by reference. Card access operators[] have been implemented to access header cards without range checking.

The cards are now stored using a std::vector structure.
Review GFitsHDU interface and remove fits_key_not_found exception.

The GFitsHDU::card methods now return a reference instead of a pointer. Some more methods have been added to GFitsHDU for header card access and management.

The fits_key_not_found exception has been removed, and keyword checks are now done using the hascard() methods. This was needed as the GFitsHeader class does not throw the fits_key_not_found exception anymore if a header card is not found.

The FITS utility function gammalib::fits_move_to_hdu has been added to the GFits.hpp/cpp files which provides support for moving to a specific HDU. As this cfitsio function is widely used in the FITS module it was favourable to put it in a specific function with a generic exception message.
Finalise FITS module review.

GFitsAsciiTable
GFitsBinTable
  The table constructors now take a const reference as argument.

GFitsImage
  All constructors and methods now take const references as arguments.
  The size(), bitpix(), naxis() and anynul() methods return const
  references, nulval() returns a const pointer.

GFitsImageByte
GFitsImageDouble
GFitsImageFloat
GFitsImageLong
GFitsImageLongLong
GFitsImageSByte
GFitsImageShort
GFitsImageULong
GFitsImageUShort
  All constructors now take const references as arguments.