Events are propogated in a more central way.

Unit tests revealed that I needed a smarter way to handle how to process events via streams.
I wound up having a central game stream that the Game class emits to, rather than my original idea of having every monster/player emit directly (eases some management and removes some coupling.) I'm anticipating that this stream will have to be carved into more selective ones which various UI subsystems (and potentially other objects!) will respond to.

UI code isn't neat since I'm figuring this all out. A new Event class was introduced which I hope is robust enough for everything I throw into it.