* Move to BuddyClient model

shoot, this actually has to return id<BuddyClientProtocol> not BPClient and then we need to prevent BPClients being created outside of BPClient.m by protecting its init (we do this in other places in the headers)

BuddyClientProtocol should be an @protocol that just exposes our public methods