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.