Density functional theory for molecule–metal surface reactions: when does the generalized gradient approximation get it right, and what to do if it does not