cmd/godoc: use go/build to determine package and example files

Also:
- faster code for example extraction
- simplify handling of command documentation:
  all "main" packages are treated as commands
- various minor cleanups along the way

For commands written in Go, any doc.go file containing
documentation must now be part of package main (rather
then package documentation), otherwise the documentation
won't show up in godoc (it will still build, though).

For commands written in C, documentation may still be
in doc.go files defining package documentation, but the
recommended way is to explicitly ignore those files with
a +build ignore constraint to define package main.

Fixes issue 4806.

R=adg, rsc, dave, bradfitz
CC=golang-dev
https://codereview.appspot.com/7333046
exp/README: update README

R=golang-dev, dsymonds, bradfitz
CC=golang-dev
https://codereview.appspot.com/7323073