Boston mayor Marty Walsh declares public health emergency