Hetero-functional Graph Theory for Interdependent Smart City Infrastructures