DST bug fix and tunnel source updates

The first commit has to do with fixing a bug currently in the U4ID principal. This principal requires a special destroy function for its DST entries, so the code currently attempts to change struct dst_ops.destroy. However, since all principals share a reference to a single struct dst_ops, this change was affecting *all* principals.

The next two patches remove the previous notion of a tunnel socket and make one of the local entry sockets be the source of the tunnel.