Refactoring Game events and dispatching

Using C# events and delegates for callbacks.

Observers can now listen for notifications from specific Subjects,
allowing for more flexibility and filtering.