Add --tempdir option

This option allows the user to make a copy of the temporary aligned
images that were combined into the mosaic. These files have been so
far removed when the program exits, deemed to be necessary only in
order to create the mosaic. However, they can be very useful not just
for debugging, but also if astronomers want to make sure that all the
images were indeed aligned correctly.

Many thanks to Javier Blasco for suggesting this, and also for sharing
with us such a useful tip: DS9, the astronomical imaging and data
visualization application, can open multiple FITS files from the
command line, each one in a different frame: `ds9 *.fits`. The 'blink'
option can then be used to cycle through all the available frames,
allowing us to visually confirm that the alignments are correct.
Add FITSImage.pfilter()

This is a convenience method that reads a keyword from the header of
the FITS image and returns it as a Passband object. This allows us to
get the photometric filter of an image directly as a Passband object,
which in most cases is what we need. Additionally, this approach has
the advantage that, if the name of the filter is unknown to the
Passband class, the error message of the raised exception,
NonRecognizedPassband, includes the filename of the FITS file.
FITSImage.read_keyword(): include path in KeyError exception message

The FITSImage.read_keyword() method raises the KeyError exception when
the keyword cannot be found in the FITS header, but the error message
only contains the name of the missing keyword (e.g., "Keyword 'FILTE'
not found."). Add to the message the path to the FITS image where the
keyword could not be found (e.g., "cig0181_H6652_001-b-f.fits: keyword
'FILTE' not found"), helping the user easily and clearly identify what
the problematic image is.
Use convenience method FITSImage.pfilter()
Add 'prefix' keyword argument to FITSImage.imshift()

FITSImage.imshift() saves the shifted image to a temporary file with
the '.fits' extension, but other than that we have no control over its
filename. Add the 'prefix' keyword argument, which, if given, will be
used as the beginning of the filename of the output image.
Use the name of the original images as prefix for the temporary files

The filename of the temporary aligned images was irrelevant when they
were always removed after the mosaic was created, but now that the
--tempdir option is available (commit 7769bfea4efe161ae4b4c8) we want
them to have names more meaningful than, e.g., "tmpF9rV7J.fits". Make
them be related to the filename of the original image by using it as
the prefix of the temporary file, so that it becomes something like
"cig0181_H6652_aligned_F9rV7J.fits".
Store the pixel shift of the aligned images in HISTORY keywords

For debugging purposes, store in the header of the temporary aligned
FITS images the pixel shift in both the x- and y-axes, using HISTORY
keywords. The process of aligning images with LEMON is not as simple
as applying these offsets, nevertheless, as in order not to lose any
data blank margins are added to the images before the alignment. For
this reason, the width of these margins is also stored in additional
HISTORY's.
Print the number of offsets read when the XML file is parsed

How many FITS images are going to be aligned and combined into the
mosaic is already printed (e.g., "There are 27 images shifted from
'best_seeing.fits'") to the terminal, but this does not happen until
we have verified that all of them have the same size. Letting the user
know how many offsets are read from the XML file can help estimate how
long this check will take.
Retain the original filename when --filename is an empty string

The --filename option sets the filename with which the 'best-seeing'
image is copied to the output directory. However, it may be the case
that the user is interested in simply running SExtractor on all of
the files without treating any of them differently. Implement this
functionality by changing --filename so that, when set to an empty
string, the image with the best FWHM retains its original filename.

Kudos to Javier Blasco for this suggestion.