datastore: handle the slice of *Key pointers type

Also added check for when trying to decode a nil *pb.Key