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.
This means 'more than one go-import meta', right? make it explicit