Implement gnu_extensions flag

Case 117233: Implement gnu_extensions flag in Archive::Tar::Builder->new()
which must be enabled explicitly by the user in order to generate archives
with GNU LongLink extension support for arbitrarily long filenames not
supported by POSIX ustar, to prevent the possibility of unknowingly
generating archives that cannot be extracted on a NetBSD or OpenBSD default
system tar successfully

Changes made to facilitate this feature:

    * Retool $builder->archive_as() to display error names for archive
      error names for archive member names, rather than original files,
      when long filename errors are thrown when GNU extensions are not
      enabled

    * Refactor options parsing code to load options into an enum bitfield
      that can be leveraged across the codebase, rather than an options
      struct that can only be used in src/Builder.xs

    * Make b_builder_write_file() throw an ENAMETOOLONG and set an
      appropriate error when encountering a filename too long without the
      GNU extensions enabled

    * Update t/lib-Archive-Tar-Builder.t to specify GNU extensions where
      appropriate

Other changes:

    * Add cPanel copyright to all b_*.h header files in src/

    * Fix an issue in b_error_set() wherein the message actually gets
      clobbered due to a missing 'return' statement

    * Reimplement $builder->archive() in terms of $builder->archive_as(),
      to reduce code duplication at no performance penalty

    * Set errno to EINVAL when truncated files are detected

    * Suppress warnings from file truncation test