Link to source using go-source meta tag.

The go-source meta tag is similar to the go-import meta tag used for vanity
package paths. The structure of the tag is:

    <meta name="go-source" content="prefix home directory file">

The prefix field is the import path corresponding to the repository root.

The home field is the URL of the repository's home page.

The directory field is a URL template for a page listing the files in the
package. The following substitutions are made in the directory template:

    {dir} - The import path with prefix and leading "/" trimmed.
    {/dir} - If {dir} is not the empty string, then {/dir} is replaced by "/" +
             {dir}. Otherwise, {/dir} is replaced with the empty string.

The file field is a URL template for a link to a line in a source file. The
following substitutions are made in the file template:

    {file} - The name of the file
    {line} - The decimal line number.

The server currently handles the case where {file} comes before the fragment
delimiter (if any) and {line} comes after the fragment delimiter.

The meta tag content attribute must contain four fields. Use "_" to fallback to
gddo's defaults for home, directory and file.

To improve the readability and maintainability of the code, change parseMeta()
return structs instead of a map[string]string. Also, move some of the
validation logic in parseMeta() to getDynamic().

Add tests for getDynamic().

See https://github.com/niemeyer/gopkg/pull/31 for the corresponding
change to gopkg.in.
Instead of logging, how about bubbling up information about malformed fields and other issues to the end user? This will allow users to debug their configurations without contacting you or logging an issue.