Changes in Functions

Instead of connection.getRoster() everywhere which increases the net
traffic, I have replaced it with the a local roster. The Local roster
has to get updated incase of an exception or an error in the current
roster