ML2: Hierarchical port binding

The ML2 port binding logic is modified to support hierarchical
bindings. If a mechanism driver's bind_port() calls continue_binding()
rather than set_binding(), the supplied dynamic segments are used for
another level of binding.

A simplification relative to the original approved specification is
that no new configuration item is added. Instead, all registered
mechanism drivers are candidates at all levels of binding. The
specification is being updated.

Gerrit Spec: https://review.openstack.org/#/c/106185/

Change-Id: I26636cddecba16586a550026a306b4952aaabc89
Implements: blueprint ml2-hierarchical-port-binding