DecodeHeader is a function that decodes a header (usually of type map[string]interface{}) to another type (usually a struct). This function is used by the objectstorage package to give users access to response headers without having to query a map. A DecodeHookFunction is used, because OpenStack-based clients return header values as arrays (Go slices).