principals now return key data

Principal key data as a dict of kvno keys and lists of tuples for the values. 

in the future the key data should be explicitly requested (via an optional mask or boolean) 


all unit test pass