Go: Fix Makefile test_dir target

    (0) mvuets@tomopalilaso:~/go/src/github.com/Sereal/Sereal/Go/sereal$ make test
    make: *** No rule to make target '../../Perl/Decoder/blib/', needed by 'test_dir'.  Stop.

It's all that bogus trailing slash! )-:<
Go: Add a Makefile .PHONY target just in case

> A phony target is one that is not really the name of a file; rather it is just
> a name for a recipe to be executed when you make an explicit request. There are
> two reasons to use a phony target: to avoid a conflict with a file of the same
> name, and to improve performance.
--- https://www.gnu.org/software/make/manual/html_node/Phony-Targets.html
Go: Add notes on bootstrapping
Go: Make test-compat.pl conform TAP

Use provided helper diag(). Print out more details. Do not print out directly
via print().

You can now benefit from running tests via prove(1), i.e.:

    $ prove test-compat.pl
Go: Rework compat test skipping

It's known and expected that some of compat tests fail. It's due to a
deliberate way the Go implementation is done (dgryski can elaborate on that
more).

But the way these supposed-to-fail tests were checked was way suboptimal:
literally just checking a number of failed tests.

This commit explicitly lists names of all tests that are known and ok to fail,
and we simply skip them, producing proper TAP output.
Go: Switch to prove(1) to run compat tests

Since af2ba584 the compat test suite output conforms TAP. It means we can
benefit from running tests via prove(1), such like colorful output, timings,
omitting irrelevant output (still configurable via .proverc file), plugings,
etc.

Sample output:

    (0) mvuets@tomopalilaso:~/go/src/github.com/Sereal/Sereal/Go/sereal$ make compat
    rm -f test_dir/test_data_*-go.out
    go test -test.run=TestCorpus
    PASS
    ok      github.com/Sereal/Sereal/Go/sereal      0.026s
    prove ./test-compat.pl
    ./test-compat.pl .. ok
    All tests successful.
    Files=1, Tests=714,  0 wallclock secs ( 0.08 usr  0.00 sys +  0.18 cusr  0.01 csys =  0.27 CPU)
    Result: PASS
Spec: Remove a redundant "been" word
Go: Make a headerSize comment correspond to the spec

The byte next to the header magic string is called <VERSION-TYPE> in the spec.
Renamed it in the code to simplify looking up.
Go: Recognize and parse a new header magic string as of version 3

From the spec:

> In Sereal protocol version 3, the magic string has been changed to make it
> easier to detect UTF-8 encoded data by setting the high bit on the 's'
> character, thus changing the older "=srl" to "=\xF3rl". Encoders generating
> version 3 of the protocol or later must use the new header, and encoders
> generating version 1 or 2 of the protocol must use the old header.