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
Merge pull request #47 from fraenkel/remove_race

Prevent duplicate routes properly