Bugfix for #1359: The tar/archive code from golang has a problem with linknames

The tar/archive code from golang has a problem with linknames with length > 100. A pax header is added but the original header still written with a too long field length.

As it is clear that pax support is by far incompleted I have added missing
implementation parts.

This commit contains code from the golang project in the folder tar/archiv.

The following pax header records are now automatically written:

- gname)
- linkpath
- path 
- uname

The following fields can be written with PAX, but the default is to use the
star binary extension.

- gid  (value > 2097151)
- size (value > 8589934591)
- uid (value > 2097151)

The string fields are written when the value is longer as the field or if the
string contains a char that is not encodable as 7-bit ASCII value.