Cameron to promise EU referendum