Prevent duplicate routes properly

* Guarantee lock when checking & adding a route
* Upgrade to a solicited route if one is seen
* Fix race issue when setting the remoteID