Add specification-based tests via FsCheck

### Goal
Test corner cases of pretty printing F# ASTs using FsCheck.

### References
http://lstephen.wordpress.com/2007/07/29/parsec-parser-testing-with-quickcheck/
http://book.realworldhaskell.org/read/testing-and-quality-assurance.html
http://stackoverflow.com/questions/16968549/what-is-a-shrink-with-regard-to-haskells-quickcheck
http://www.haskell.org/haskellwiki/QuickCheck_as_a_test_set_generator
http://stackoverflow.com/questions/9977734/controlling-how-test-data-is-generated-in-quickcheck
http://www.cs.tufts.edu/~nr/cs257/archive/john-hughes/quick.pdf

### Tasks

 - [x] Create test generators for F# expressions
 - [ ] Create test generators for F# type definition (this part in the code base seems more buggy)
 - [x] Use shrinkers (if possible)