Fix duplicate channelIDs

Using the UAID -> []*Channels was not a good idea because Go sucks at supporting indexOf and similar on arrays, and also equality on structs is only based on reference and not custom functions.

Switched to using a map from UAID-> Set of channelID where the set is a map[string]*Channel
If you want access to a *Channel use the indirection 

    UAIDToChannelIDs[uaid][channelID]