adding an example with a GUI
adding README
removed CallRenderer because this example is about Gchat not streaming video, audo, depth, and OSC
moved calls to FriendsView::estimateCanvasHeight() out of FriendsView::addFriendView and FriendsView::removeFriendView because these are event callbacks and I want to make sure that estimateCanvasHeight() happens synchronously with canvas->draw()
redraw FriendsView canvas every time a user connects or disconnects, so that there are not empty holes left by disconnected users and so that the users are listed in order
Revert "redraw FriendsView canvas every time a user connects or disconnects, so that there are not empty holes left by disconnected users and so that the users are listed in order -- need to think more about how to do this because deleting the FriendView is a bad idea because then it can get a click event and then be delete before the callBack on that click event and then there is a seg fault (I think this is what is happening)"

This reverts commit 6a6db2a583e0ba03d997369743eae8b55b57c2ee.
using XMPP's mutex so that callbacks from XMPP's userConnected and userDisconnected events are not modifying data at the same time as the main app thread is redrawing the canvas
lock XMPP for as little time as possible
when a user disconnects, the canvas reflows the elements so there is no hole left behind
removed unused mousePressed event callback from FriendsView
do not need to check before deleting a null pointer
removed unused #define constant from MessagesView
basic message composing display is in
backspace takes away from messages
modified gitignore