The idea of a ``Keyword`` class was to provide a way of telling a function like ``subtract_dark`` where to look in the metadata for relevant keywords (e.g. exposure time). 

I'll make a line comment below and tag you on it to show a couple places where it is used.

One alternative considered was just giving the name of a key in the metadata--the concern raised by @eteq was that you don't know the units of the value in the metadata, and ``Keyword`` provided a way to do that.

The synonym stuff is in there because I've already got code that does it...it is not at all essential.

I agree that ``value = key(header)`` is confusing...and I wrote it. If something like this stays then ``key.get_value_from(header)`` might make more sense.