'Return a dictionary representing the CLIENTPIDMAP, grouping VCard
lines by data sources.
>>> vc = SimpleVCard(VCardLine(name=\'fn\', value=\'Bjarni\', pid=\'1.2\'),
...                  VCardLine(name=\'clientpidmap\',
...                            value=\'1;thisisauid\'))
>>> vc.get_clientpidmap()[\'thisisauid\'][\'pid\']
1
>>> vc.get_clientpidmap()[1][\'lines\'][0][0]
2
>>> vc.get_clientpidmap()[1][\'lines\'][0][1].value
u\'Bjarni\''

def get_clientpidmap(self):

    cpm = {}
    for pm in self.get_all('clientpidmap'):
        (pid, guid) = pm.value.split(';')
        pid = int(pid)
        cpm[guid] = cpm[pid] = {'pid': pid, 'lines': []}
    for vcl in self.as_lines():
        if ('pid' in vcl):
            pv = [v.strip().split('.', 1) for v in vcl['pid'].split(',')]
            for (pid, version) in pv:
                pid = int(pid)
                if (pid in cpm):
                    cpm[pid]['lines'].append((int(version), vcl))
                else:
                    pass
    return cpm
