Tolerate 0-value (missing) local size headers.

Some rogue zip creators fail to set a non-zero local header size in
Extra Data causing SharpZLib to reject them, this patch causes the
library to tolerate that particular oversight like most other libraries.
Throw ZipException instead of generic Exception on password error
Fixed timezone shifting
Enable symlinks and hardlinks in TAR archives
Support long names in Tar archives ("prefix" header field as defined by ustar)