A flexible way to add and remove listeners to any object. Includes a strict state system for use in an observer pattern.