Change logic of stack_maps() and add a unit test for stack_maps().

The new method stack_maps() now works on the object it is applied to instead of creating a new sky map. The reason is on the one hand semantic, as "stack_maps" is an action applied on the current object. For an object returning a skymap, the name should be something like "stacked" as the new map is a stacked version of the old one. But another reason is memory usage. The method now allocates a new memory space for the stacked map and releases the old memory once the stacking is done.

The new implementation is also more general as this method now works for both WCS and HEALPIX projections.

A unit test has been added to make sure that the maps were indeed stacked.