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.
Change init code to use SYNC version of the modules
Merge pull request #672 from praveenkv/sync_init

Change init code to use SYNC version of the modules
Use SYNC version of call for nexthop add during init
Merge pull request #674 from praveenkv/sync_init

Use SYNC version of call for nexthop add during init
Protect watermark vectors in queue task using spin_rw_mutex to
avoid corruption.
Merge pull request #675 from Juniper/meghb_wq_wm

Protect watermark vectors in queue task using spin_rw_mutex to
Catch all exceptions while calling any rabbitmq APIs and reinit connection if it is broken for any reason
Merge pull request #676 from Juniper/sb

Catch all exceptions while calling any rabbitmq APIs and reinit connecti...
Create python contrail-vrouter-api
conform to pep8 stylecheck
fix contrail-status-deb
Merge pull request #678 from Juniper/rajreddy_fix_contrail_status

fix contrail-status-deb
Merge pull request #677 from Juniper/vrouter_api

Create python contrail-vrouter-api
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