Replace gofmt3b with format.Source.

Use the improved go/format, currently an in-flight CL to Go
(https://codereview.appspot.com/142360043), instead of shelling out to
gofmt binary.
This improves performance, and allows the package to be compiled to
JavaScript since it uses native Go code.
It's also a test case for the go/format patch.
For lists, use tab instead of space for indent.

This has no effect on rendered HTML.
However, it is a change that will allow for improved and correct
support of multiple nested lists with rich content inside.
In the end, this is a formatting change that "makes the most sense"
when considering all of Markdown features and how they interact.
It also more closely matches the original nested lists examples in
Markdown description (see
http://daringfireball.net/projects/markdown/syntax#list).