Handle IPv6 route duplication

While route duplication can happen in both v4 and v6 it's far more common in v6
since the underlying table holds so many cached routes (there's a single table
in Linux for v6 for cached and non-cached routes), thus causing more likelyhood
of duplication in the results from netlink.

Further, several kernels had a bug that caused even more duplication.

Thus, we uniqify the output before we try to parse it.

And since parsing can take a while, we don't live the process hanging.