Refactor all Neutron configuration to be more flexible and support different backends

Refactorization from puppet-neutron:
* use neutron::agents::ml2::ovs in a new class: cloud::network::vswitch
* include this class automatically in network & hypervisors classes.
* allow some flexibility in agent configuration and open the class to
  eventual other drivers. Currently, only ML2 with OVS is supported.
* Cleanup cloud::network to avoid useless code.
* Refactorize provider networks usage.
* make cloud::network::controller plugin agnostic
* make cloud::network plugin flexible with ML2 by default
* Deprecation of somes parameters in cloud::network with a warning but
  no backward compatibility.
* Update unit tests.