Fixed the project configuration.
Replaced PiMessageDelegate protocol with a PiMessageCallback class

This means that we can have a single AppDelegate class handle multiple types of incoming PiMessage responses from the server.

For example, I defined an addToGroupCallback instance variable and a removeFromGroupCallback instance variable that is initialized when the application is launched. Each variable has it’s own separate callback blocks that can update the UI when a PiMessage response comes in. If we used a delegate, we would have to have a case for each different type of message sent in order to achieve different UI updates.