emma watson as hermione granger in pirates of the caribbean