[CLEARWATER] Changes to support Contrail Vrouter as a networking option

Changes to support Contrail Vrouter as a networking option in the netdev library. A module VRouter is created which handles all the networking ops.
In fact the catch-all case `_` on line 247 can never be reached.
`x::[]` matches any non-empty list, and `x::[] -> x` returns the first element of a non-empty list.
Then `[]` matches the empty list, so that covers all the possibilities.