Ukraine president vows revenge after 19 soldiers killed in rebel rocket attack