Refactor pipeline into its own module

Reviewer: @poolakiran

Having the packet pipeline in its own module will make it easier to develop and unit test as we introduce greater programmability.

The majority of these changes are to cut dependencies of the pipeline code on OVSDriver. Common definitions are moved to a new ivs module that's shared between OVSDriver and pipeline.