Type-safe .NET messaging framework, using XMPP