Hurricane Sandy kills 21 in Caribbean, takes aim at US