trivial cleanup and remove verbosity of testing
refactoring: split NetKAT_Compiler into two modules

These two modules are totally independent
moved make_string_of to NetCore_Util

Eventually, when we delete the rest of NetCore, we'll rename the module
to just Util.
Parameterized semantics over the headers
expose bits of Local, move convertors to SDN_Types to RunTime module

The functions that convert to SDN_Types are the only functions that
special-case on the Switch pseudo-header.
oasis setup
signatures on sub-modules help understand the invariants
parameterize the compiler over the type of headers
wrap call to quickcheck in TEST, so that errors are properly counted
Quickchecking and bug-finding in the NetKAT compiler

- See line 150 of NetKAT_Test:

      compile Src -> A ; (filter Src = C + Dst -> C)
      produced filter !Src = C ; (Src -> A ; Dst -> C),
      expected Src -> A ; Src -> C

  This is obviously wrong

- Quickchecking easily produces policies that blow the stack

- Unit tests now use the TestHeaders (Src/Dst A/B/C/D) instead of
  full-blown OpenFlow headers for readability.
Merge pull request #117 from arjunguha/master

Some trivial cleanup