Residents of St Petersburg have been told to stay at home following a large-scale Ukrainian drone attack on the city.