core: Use tokenized identifiers when constructing an address

Token change triggers a router solicitation. We learn of the new address as the
advertisement arrives, remove the old addresses and generate a new one.
build: Check for tokenized identifier support in libnl-route-3
platform: Refresh link cache when IPv6 tokenized identifier changes

Refactor the object comparison logic into a separate function. One from libnm
is not good enough (see comment).

Also, kernel currently won't send notifications on token change, a patch is
needed.
platform: Add support for IPv6 tokenized identifiers on Linux