Union type pattern generation

Here's a compilable & testable POC

![union-match-case-generation-poc](https://cloud.githubusercontent.com/assets/1169339/3086362/3d96fb12-e530-11e3-981e-c45f9629b3e5.gif)


* [ ] Doesn't handle case when first clause starts without the pipe ``|`` (ex: ``match x with Case1``)
* [ ] Doesn't handle combined clauses (ex: ``match x with Case1 | Case2 -> ()`` instead of a separate expression per case)

Out of scope:
* ``function Case1 | Case2...``