add ability to set a roster group as shared to another

Add new type and parameters to support sharing a roster group from one
to another
cleaned up change

added back some robustness checking and cleaned up code, added support
for setting group to be shared with all users