Discrete-Event System Theory: An Introduction