sync_pol: use the last policy update as the current policy

The controller must keep track of the current, authoritative policy for
the network. While there may be delay in actually implementing that
policy on the network, that delay should be minimized.

Prior to this commit the controller used the current policy for the
application it was running to determine the current, authoritative
policy for the network. But when the user specifies a non-zero
policy_queue_size, the application's current policy may differ greatly
from the one installed on the network, and that difference may persist
for quite some time. The result is that many packets sent to the
controller will be subject to a policy that is significantly different
from the network policy that forwarded them to the controller in the
first place.

This commit changes the bookkeeping of the current policy so that the
current policy is determined when the controller begins to install the
latest policy update on the network.
Fix Camlp4 parser bug, replacing '=' with ':='

Also rationalize order of field names.
raw_app: make raw_app abstract over value type
raw_app: implement lift and ap for Raw_app.t

Now that Raw_app.t can produce arbitrary values, an applicative
interface is possible. And appealing.
Add parser support for IPv4 netmasks.
Ulexing dependency.
Merge pull request #337 from frenetic-lang/sync_pol

sync_pol: use the last policy update as the current policy
mk_op: Use mk_{seq,union} operations for app composition

These operators will eliminate extraneous policy fragments while
performing composition, which will make the result easier to read at the
very least.
Cleaner implementation of IP masks.
Try parsing IP addresses first.
Move mask parsing from lexer to parser
Merge pull request #343 from frenetic-lang/masks_parser

Add parser support for IPv4 netmasks.
Merge pull request #342 from frenetic-lang/raw_app

Low-level app interface abstracts over value type
Merge pull request #344 from frenetic-lang/mk_op

mk_op: Use mk_{seq,union} operations for app composition
merge master into globabl-compiler
added improved cps that differentiates between local and global pcs; the local pcs should be optimized away'' by the flow table compiler
added wrapper for cps
todo: remove hard coded ingress and outgress
todo: why does flow table compiler generate unnecessary rows?
todo: further compress global pc space by exploiting switch and port fields
todo: VlanPcp (= network counter) will always be 0; how do we get rid of it?