Add LEMONdB.field_name method (decorated with @property)

The method determines the name of the observed field by analyzing all
the object names and finding the longest prefix that is shared by more
than half of the images in the LEMONdB. For example, if the object
names are 'IC5146_30minV', 'IC5146_30minR' and 'IC5146_1minI', the
string 'IC5146' is returned.
Set the tab label to the name of the field when a LEMONdB is opened

Use LEMONdB.field_name to automatically determine the name of the
observed field and set the tab label for the notebook page containing
the list of stars of a LEMONdB to this value. In case the name of the
field cannot be automatically determined (i.e., in the unlikely event
that no prefix is common to the object names of the images), the name
of the .LEMONdB file is used, as we have been doing until now.
Read FWHMs from the XML offsets file, not from the FITS headers

Now that the XML offsets files contain the FWHM of the images, we do
not need to open the FITS images and read it from the header when in
need of computing the median FWHM of each photometric filter. This was
not only unnecessary, but also a bug since the --fwhmk optparse option
was removed in commit a193e8bcdfeb3.
Do not use a list comprehension to discard XMLOffset objects

If we use a list comprehension to take those XMLOffsets whose filter
matches that specified by the user with the --passband option, we end
up with a list, not a XMLOffsetFile, which is what we need. This is a
consequence of commit 884d62a5342f3a0, since which information on the
reference image (such as its airmass or FWHM) is stored as attributes
of the XMLOffsetFile class.
Add METADATA table

Although we are using SQLite, we do not need a relational model to
store information about the LEMONdB such as who run the pipeline, on
which computer this was done or the date of creation of the database.
This records (key-value pairs) will be stored in this table, where we
do not allow, by means of the UNIQUE constraint, more than one row for
each different record — i.e., there cannot be multiple rows with the
same value in the 'key' column.
Add LEMONdB._set_metadata and _get_metadata methods

These non-public methods can be used to add and retrieve key-value
pairs to and from the METADATA table. Neither the key (e.g, 'AUTHOR')
nor the value (e.g., 'John Doe') can be None — otherwise, ValueError
is raised. LEMONdB._get_metadata returns None if there is no record
with the specified key in the METADATA table.
Add LEMONdB.date property — set and retrieve the date of creation

This property, which encapsulates the LEMONdB._get_date and _set_date
non-public methods, can be used to set and retrieve the 'DATE' record
(in the METADATA table), intended to store the time of creation of the
database. It is expected to be given in Unix time, and, as so, cast to
float when retrieved from the LEMONdB.
Add LEMONdB.author property — set and retrieve who created the LEMONdB

This property encapsulates the LEMONdB._get_author and _set_author
non-public methods, getter and setter of the 'AUTHOR' record in the
METADATA table. It should be used to store the name of the user who
ran the instance of LEMON that output the LEMONdB.
Add LEMONdB.hostname property — where the LEMONdB was created

This property encapsulates the LEMONdB._get_hostname and _set_hostname
non-public methods, setter and getter, respectively, of the 'HOSTNAME'
record in the METADATA table. It is expected to store the hostname of
the machine where the LEMONdB was created.
Write date, author and hostname metadata to the output LEMONdB
Update date, author and hostname metadata of the output LEMONdB

After the light curves are generated or their periods computed, the
METADATA table of the LEMONdB must be updated with the new date of
creation of the output database (or modification of the input one),
the name of the user who ran LEMON and the hostname of the machine
where it was executed.