Fix up the getNextDialogID to handle looping and ID reuse, and return 0 when unable to find an available ID.
Handle closing/destroying a dialog and informing the client.
Disable the example dialog (while also adding a couple other pieces to test when enabled).
Add a temporary /dialog command for testing the dialog system.  Currently allows creating a test dialog and destroying any dialog (even ones you don't own).
Add a client dialog manager method to unpack the dialog destroy message.  Also return the dialogID from unpack functions, with 0 indicating failure.
Add some temporary debug output on the client to show the dialog create and dialog destroy data.