An Israeli strike on an ambulance believed to be carrying Hamas troops has killed more than 15 and injured dozens.