Room -> Implement presence detection based on adjacent rooms.

+        m1 = Motion(name='m1')
+        m2 = Motion(name='m2')
+        m3 = Motion(name='m3')
+        r1 = Room(name='r1', devices=m1)
+        r2 = Room(name='r2', devices=(m2, r1))
+        r3 = Room(name='r3', devices=(m3, r2))
+        r1.add_device(r2)
+        r2.add_device(r3)
+
+        m1.motion()
+        self.assertEqual(r1.state, State.OCCUPIED)
+        self.assertEqual(r2.state, State.VACANT)
+        self.assertEqual(r3.state, State.UNKNOWN)