Former deputy prime minister Lord Heseltine has defended David Cameron over his decision to call an EU referendum.