depipe: elminiate redundant controller actions

If a policy specified that a packet should be sent to multiple pipes,
the compiler would previously produce multiple controller actions in the
generated flow for that particular pattern. This would send multiple
redundant copies of the packet to the controller.

The compiler now rewrites the intermediate representation to only
include a single pipe location. This rewritten representation is what's
used to generate flowtables, thus fixing the issue.
Merge pull request #370 from frenetic-lang/depipe

depipe: elminiate redundant controller actions