Add support for headless vrouter.
In headless vrouter, even after death of all control nodes, agent does not flush
off configs/routes and continue to work with last known good configuration
(which is the information sent by last stable control node).
The information is amrked as stale and agent continue working with same.
When a new control node comes up agent will flush off the stale data and use the
information sent from new control node. Flushing of data is timer based so that
instability of new control node can be handled and due time can be given to
exchange the information (config + route paths).
Along with headless mode changes, non headless mode has been retained. Though by
default agent works in headless mode.

Other than headless mode this commit also caters to re-org of controller
subscription code in agent which essentially involves using common route walker.
Address review comments.
Add headless agent mode in config ini file and arguments. By default disable
headless.
Also make test more robust by converting checks to wait_for checks, also issue
timer fire from test after stopping taskscheduler.
Add support for headless vrouter.
In headless vrouter, even after death of all control nodes, agent does not flush
off configs/routes and continue to work with last known good configuration
(which is the information sent by last stable control node).
The information is amrked as stale and agent continue working with same.
When a new control node comes up agent will flush off the stale data and use the
information sent from new control node. Flushing of data is timer based so that
instability of new control node can be handled and due time can be given to
exchange the information (config + route paths).
Along with headless mode changes, non headless mode has been retained. Though by
default agent works in headless mode.

Other than headless mode this commit also caters to re-org of controller
subscription code in agent which essentially involves using common route walker.
Address review comments.
Add headless agent mode in config ini file and arguments. By default disable
headless.
Also make test more robust by converting checks to wait_for checks, also issue
timer fire from test after stopping taskscheduler.
rebase conflicts
rebase resulted in dual inclusion of function declaration, fix it
Merge pull request #657 from Juniper/headless-vrouter

Add support for headless vrouter.