@embray - do you think this would be an improvement?

+ if units are in the FITS header, we use them (once the Header interface can read them...could help with that in a couple of weeks if you want), warning if they conflict with anything the user has specified explicitly.
+ if no units are in the FITS header, the user must provide them.
+ synonyms go away to simplify the keyword class.

with these changes the keyword class is essentially a dict to map a keyword to a unit with a method to extract a value from the image metadata.

@crawfordsm -- any feelings about this?