Convert bless(*, ...) to bless(...) to follow a Perl 6 spec change

Support current Rakudo and Perl 6 spec by removing the leading
whatever-candidate argument to bless (previously required but always
the same, so now removed).
Fix type declarations for Positional attributes in all PB::Model::* classes

The previous code used to work accidentally (because the incorrect type
declaration was being ignored), but nowadays such type declarations are
enforced and fail type checks.
Bug fix in PB::Actions: An int-lit should return an Int, not a Num
Simplify some complex expressions that can be replaced with builtin operators
Consistently use abbreviated colonpair syntax for named arguments in lib/

In other words, convert remaining 'foo => $foo' and ':foo($foo)' arguments
to simpler ':$foo' form.  Also convert one remaining use of fatarrow pair
syntax that could not be trivially abbreviated to general colonpair syntax
for consistency.
Be consistent about explicit ! and ? for params in new() declarations

Fix the one place in which explicit ! and ? markers were not used on all
parameters in new() declarations.  These are not actually necessary when
the default ! is used for positional parameters or ? is used for named
parameters, but appear to be used intentionally as constructor usage
documentation throughout the code base, except for this one missing ?,
so fix the inconsistency.
Fix an incorrect EXPORT usage comment

The expected arguments for this EXPORT are positional, not named.
Add newline at end of module files that are missing it
Test against official .proto tests separately from local grammar tests

Split out code for downloading and parsing Google's official .proto test
files into a separate test script.  This allows running internal grammar
tests separately, without invoking svn and triggering network activity.
Add done() calls to end of test files so prove can detect end-of-tests
Provide infix:<eqv> comparison multis instead of infix:<eq>

In Perl 6 eq is string equality, while eqv is structural value equivalence,
so objects (and arrays of them) should be compared with eqv.  This change
also allows cleaning up some hackery needed by the original comparison
code.  Note that this commit does not include matching updates to the
tests, which are in separate commits.
Convert test helper functions to use eqv comparisons instead of eq

Add test functions is_eqv() and isnt_eqv() based on new eqv comparison
multis.  Also refactor gr_ok() test function in terms of is_eqv().
Fix ok...eq and nok...eq tests to use is_eqv and isnt_eqv, respectively.
Fix float tests to compare against Num (not Rat) constants

Perl 6 treats 1.0 as a Rat (rational number) constant, not a floating
point constant.  You must use exponential notation such as 1.0e0 to
get true Num (floating point) constants.  This was a bug in the test
suite found by conversion to eqv-based tests.