hetero: use Header.compare instead of Pervasives

They are synonyms for each other, but consistent use will make
refactoring easier in the future.
hetero: Move empty Header to NetKAT_Types.Header

Can reuse this in other place, in particular tests.
hetero: move constructors to NetKAT_Types

Also use the type within modules in LocalCompiler as if the Header
type is abstract.
hetero: Move HeadersCommon.to_string to NetKAT_Types