Hamas vows revenge after leader killed