Add support for the Cache-Control header

Also use a dictionary for key lookup rather than a list