lc-sig: Define compare function for Pattern

This is necessary to eventually make the Pattern.t type abstract.
lc-sig: Make Pattern.t abstract, use internal signature

The signature `Pattern_S` duplicates the signature in the .mli file,
with the exception that it also declares the functions that are used
internally by LocalCompiler.

One observation is that each module has some analogue in SDN_Types. In
order to make these the types that they export properly abstract, the
modules themselves must handle the mapping to and from. For Pattern,
this has two consequences:

  * it must expose some way of making a 'singleton' pattern. This is the
    new `test_pat` function
  * it must expose some way of turning a Pattern.t into a
    SDN_Types.pattern. This is the `to_sdn` function, which a modified
    version of the `to_pattern` function that was previously in the
    Runtime module.
lc-sig: Define set_act function for Action

Provides a way to create a 'singleton' Action.t. This is necessary to
eventually make the Action.t type abstract.
lc-sig: Make Action use an internal signature

The signature `Action_S` duplicates the signature in the .mli file,
with the exception that it also declares the functions that are used
internally by LocalCompiler.

Similar to Pattern, there are functions in in Runtime that translate an
Action.t to an 'SDN type'. But unlike Pattern.t, Action.t cannot be made
abstract in a straightforward way due to the `seq_act_pat` in the
Pattern module. In order to make Action properly abstract, the module
must specify a header, value, and pattern type that both Action and
Pattern can use to interoperate.
lc-sig: Make Local use an internal signature