Groups avatarupdateleave pr

group functionality: 
• group avatar support 
• group update support (full comptibility iOS/android)
• group leave support
this will return nil if there is no such thread. I think that's to be expected. actually since it just uses the group id to retrieve the thread it should just additionally be refactored to be threadWithGroupId instead. leaving as is to be consistent with the other call but I will do a refactoring pass with this.