Fix formatter to match gofmt

Added GO tests from the GO repository here: https://code.google.com/p/go/source/browse/#hg%2Fsrc%2Fcmd%2Fgofmt%2Ftestdata
Fix formatter for previous existing tests
Comment out tests due to additional refactoring gofmt is doing
Better empty node check
Add extra formatter test cases
Improve struct formatting used as a parameter in a function call