Fix bugs in required and excluded routes

It is now an error to specify more than one required route with the
same target (ValueError is raised).

It is now possible to define multiple excluded routes involving the
same target model.  Previously, the last defined exclusion route for
a target model would silently replace any other such routes.

Signed-off-by: Kevin Murphy <murphyke@email.chop.edu>