Merge pull request #5 from djs55/master

Updates
Raise exception if file_name or link_name too long.

Responsibilty lies with the caller to truncate, if necessary.
Add Ustar header fields.

Adds support for the additional fields of Ustar format. A type
Header.compatibility indicates which version of tar should be assumed by
functions requiring it, in particular Header.Link.of_int defaults to
previous V7 behaviour. ?level added to functions which need to be
determine compatibility level to use. Extra fields are not read in this
commit.
Support for writing Ustar headers.

Ustar format support allowing non-zero devmajor and devminor and
non-empty uname and gname in the header. file_name can also be up to 256
characters long (255 characters for a directory name), providing that it
can be split at a path-separator such that the basename is 100
characters or fewer and the dirname 155 characters or fewer.

?level added to Archive.create_gen to allow writing Ustar headers.
Create internal version of Header.marshal

GNU tar support requires the ability to write link_indicator values
which aren't in the Header.Link.t enumeration.
Add GNU tar support for long file and link names

GNU tar supports file and link names of unlimited length.
Tar.Make.Archive.list (and Tar_unix.Archive.list) require a level
parameter as GNU tar achieves this by writing extra header items
(without specifying ~level:GNU, these header items show up correctly as
extra files).
Fix tar_lwt_unix.ml to compile

New features not supported in the lwt branch, however.
Ignore parse_test.native
Add Tar.Header.compatibility_level

Default compatibility level to use for functions with a ?level argument, allowing the "default default" of V7 to be overridden.
Add ?level parameter to Tar_lwt_unix functions

Support ?level parameter for existing functions only.
Maintain compatibility with very old cstruct
Merge pull request #6 from dra27/long-names

Long names