Breaking change for #route_conditions and add #lookup

#lookup is like route_conditions except that it is only used for index lookups (or explicitly elsewhere).

Also add a method that gets notified every time a route is executed to enable query execution logging, etc, and added a flag to raise an exception when running a route that does not hit any index (so would scan the entire datasource)