vnet: create L2 feature arc infrastructure

This commit adds two new nodes in the L2
datapath in input and output direction respectively.

These nodes fork the traffic into three feature
arcs: ip4, ip6 and nonip, which later join
to continue the usual L2 processing.
The vnet_l2_feature_enable_disable() function
with the same signature as
vnet_feature_enable_disable() takes care of
enabling the L2 datapath feature bits as needed, when
the features are enabled/disabled.

Thus, L2 features may use the similar plumbing as
the L3 features enjoy.

Change-Id: I76877b3a92d794c492bff1622bb26acba05705b2
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
diff --git a/src/vnet/l2/l2_input.h b/src/vnet/l2/l2_input.h
index 4d6f1a3..e7c413f 100644
--- a/src/vnet/l2/l2_input.h
+++ b/src/vnet/l2/l2_input.h
@@ -117,6 +117,7 @@
  _(VPATH,         "vpath-input-l2")             \
  _(ACL,           "l2-input-acl")               \
  _(POLICER_CLAS,  "l2-policer-classify")	\
+ _(INPUT_FEAT_ARC, "l2-input-feat-arc")         \
  _(INPUT_CLASSIFY, "l2-input-classify")         \
  _(SPAN,          "span-l2-input")