US declares war on Mexico