Fix DB Duplicate error when scheduling distributed routers

The error was caused by binding the router to an agent
candidate that was already selected during the scheduling
process.

A DB lookup was also saved by passing the router object
around; this led to a minor style cleanup.

Closes-bug: #1351123

Change-Id: Ib71a0140c8a7fbd5b230609d33487f8adba252e7
Merge "Fix DB Duplicate error when scheduling distributed routers"