Implement initial version of GCTACubeResponse class.

The initial version of the GCTACubeResponse class has been copied from GCTAResponse. Only the GCTACubeResponse::irf method is so far implemented.
Move response reading and writing from GCTAObservation to GCTAResponse.

GCTAObservation does no longer contain any response specific code.
Minor bug fixes to make all unit test work.
Rename GCTACubeResponse to GCTAResponseCube
Replace GCTAResponse by GCTAResponseIrf in arguments.
Rename GCTAResponse to GCTAResponseIrf.
Refactor CTA response class.

The CTA response was refactored. GCTAResponse was renamed GCTAResponseIrf, and GCTAResponse became an abstract base class for all possible CTA response functions. GCTAResponseIrf derives from GCTAResponse. Also GCTAResponseCube derives from GCTAResponse.

To make this work, the GObservation::response() method now returns a pointer instead of a reference. The interface definition is such that the pointer never can be NULL. The code has been adapted to comply to this new interface.

Upon reading an XML file, GCTAObservation now determines the appropriate reponse type and calls its reader. If no response is specified in the XML file, GCTAResponseIrf will be used by default.
Add CTA cube-style response Python interface definition
Add CTA response automatic type casting.
Add CTA cube-style response.
Rename load(GFits&) and save(GFits&) methods to read(GFits&) and write(GFits&).

To be compliant with coding conventions.
Add CTA response cube constructor
Reduce chattiness of print() method.
error() now returns always a positive number.

As the scale factor can be negative, negative errors were returned before. By definition the error is a positive number, hence now the absolute value of the error will be returned.
Implement CTA cube-style analysis.

CTA cube-style analysis is now supported. Depending on the information found in the observation definition XML file, GCTAObservation either allocates GCTAResponseIrf or GCTAResponseCube.

Unit tests have been added to verify cube style analysis. The cube-style fitting results are close to the binned analysis results.
Add GCTAResponse::isvalid() method that checks if a response has been loaded.
Add hasresponse() method to check whether a response is allocated
Avoid recursive printing
Reduce file size of exposure cube and enhance response validity check.

The method hasreponse() now checks whether a response object has been allocated AND whether the response object is valid. Before, only the allocation was checked.