Multiple Gateways[1/2]: add sourceRouting module

http://www.ovirt.org/Features/Multiple_Gateways

Patch Set 3:
* Trivial fixes after comments from initial review

Patch Set 4:
* Use newly implemented iproute2 binary wrapper

Patch Set 5 - 8:
* Rebased changes from ipwrapper.py
* Structural changes to allow introducing a configurator

Patch Set 9:
* Configure now checks if the gateway received
  is 0.0.0.0. If so, nothing has to be done.

Patch Set 11:
* Squashed with next patch in series
* Added a configurator to SourceRoute
* Moved SourceRoute add/del routes/rules to Ifcfg configurator
  and Iproute2 configurator.
* configure and remove now check that the requested interface
  is 'tracked' by VDSM. That is, it was created by us
  and not an interface configured manually by the admin.
* SourceRoute no longer needs or knows if it's Static or not.

Patch Set 12:
* Added sourceRoute.py and netconf/iproute2.py to make
  and spec files

Patch Set 13:
* Use a argparse to deal with command line arguments

Patch Set 14:
* Dropped WIP tag and changed name to reflect that it is a partial
  state of the feature.

Patch Set 15:
* Rebase

Patch Set 16:
* Reflect the changes of method names in the previous patch.

Patch Set 18:
* Fix deleting network without routes and rules.

Patch Set 19:
* Fix ipaddr -> ip.

Patch Set 21:
* Fix 'static' -> 'none'.

Patch Set 22:
- Fix bug when taking down interfaces. The previous version failed to
  remove rules due to the fact that on el6:
      ip route show table xxxxxxxxx
  gives the routes of the xxxxxxxxx table but also of the main table,
  so for example the ovirtmgmt route on a different device and
  different table was being marked for removal from table xxxxxxxxx.
  Since the route wasn't really on the table, netlink returned an
  exception and we never reached the rule removal stage.

Patch Set 23:
- Make the code cleared in the except ValueError.

Patch Set 24:
- Sort import sections alphabetically. Make staticmethods out of
  instance methods without state nor class dependencies.

Patch Set 25:
- Fixed the bootup issues for DHCP and refactored sourceRoute into
  static and dynamic for easier integration in the following patch.

Patch Set 26:
- Addressed review comments about logging and documenting.

Change-Id: I0224d896724b9cdc44215e92f0da0be71fd19038
Signed-off-by: Assaf Muller <amuller@redhat.com>
Signed-off-by: Antoni S. Puimedon <asegurap@redhat.com>
Reviewed-on: http://gerrit.ovirt.org/15207
Reviewed-by: Dan Kenigsberg <danken@redhat.com>