Further optimize reachability topology builder

When we remove a large number of prefixes, we end up reading the current
prefixes over and over, just to make sure we can clean up the node.

This is very slow when there is a large number of prefixes. As it turns
out, we can cache node presence in a very lightweight manner and perform
a simple delete counting to expire it. It also helps with the add case,
as we do not have to issue a merge every time.

Change-Id: Ibd5d15a96e758480edf5cf12324fee9215784042
Signed-off-by: Robert Varga <rovarga@cisco.com>