get_binary_name should returns strings without spaces

Iptables does not support chain names with spaces. It implies
get_binary_name should return strings without spaces (they are used as
chain name prefix). But currently 'python -m unittest $module' implies
spaces in get_binary_name() result, it disallows to use it when $module
is a functional test module. This change replaces spaces with
underscores in get_binary_name results.

Change-Id: Ie7c8518b92be46a4eea4e9345713fdeba844126d
Closes-Bug: #1404250
Fixes spelling error

Closes-Bug: #1404341

Change-Id: I1e0209ab293494942efab12baabd4858df40e3aa
Add validation for the dvr router l3agent binding

Validates dvr router add/remove cases to the
l3agents running in different dvr modes such
as "dvr_snat" and "dvr" mode.

In the case of distributed virtual routers it
does not make sense to move distributed routers
from one "dvr" node to another "dvr" node.

Also added some unit tests that addresses the
validation of legacy routers to dvr agent and
dvr routers to legacy agent.

Partial-Bug: #1369721

Change-Id: I008dda6abaf25094b11f3730b951e096dd3b7025
Merge "get_binary_name should returns strings without spaces"
Merge "Fixes spelling error"
Merge "Add validation for the dvr router l3agent binding"
Merge branch 'master' of https://github.com/openstack/quantum