Jeremy Clarkson emailed the Duke and Duchess of Sussex to apologise over a controversial column in which he said he "hated" the former actress.