hetero: fix pretty-printing issues

  * All interger values should be printed as unsigned integer types.

  * Change ethType to ethTyp and vlan to vlanId
hetero: get arbitrary instance working again
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