engine: Refactored code into NetworkValidator class

The NetworkValidator class handles network validation on the data center
level, and is instantiated on a per-network basis. This validation had
previously been performed by the NetworkCommon class and its derived
classes, but now the NetworkValidator may be used as a service provider.

A corresponding test class is added.

While refactoring fixed inconsistency bug related to add/update network
commands.

Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=905479

Change-Id: Icf40d81f0481c6b6dec141a71363888dc9e9a941
Signed-off-by: Lior Vernia <lvernia@redhat.com>