Sir Roger Moore has been forced to defend himself against allegations of racism after suggesting that Idris Elba could never play James Bond because he was not "English-English" enough.