Information-theoretic Reasoning in Distributed and Autonomous Systems