folder() shouldn't throw an exception

Like remove(), without any argument, we should just return `this`.
Fix : the folders wasn't marked as folder.

Also, add some unit tests.
Load zip : a new way to read them.

Instead of reading the central dir and then the local dir (and trying to
handle all the cases, data descriptors, data descriptors with zip64, etc)
I just read the central dir, hoping that everything is here. (The only
exception is the file name : for some reasons, some zip have the real
name : with / instead of \ in the local dir)

This fixes an issue with nested zip files and data descriptors. When the
size was 0 in the local dir, we would seek the next occurence of the
data descriptor signature. With zip containing data descriptors, this
would lead to a bug.

This should also help the issue #30 : the new code avoids the overhead of
looking for data descriptors.

Other change : I explained the limitations of the zip64 extensions in
the browser.
Merge pull request #31 from dduponchel/issue30

Use the central dir instead of the local file header (+ other patches)
Fix content for folder entries.
Using the DEFLATE compression on folder entries with empty content cause the Java zip inflator to fail.
This fix totally remove content when compressing a folder entry, and set compression to none for this entry.
Fix indentation with 3 spaces
Update jszip.js

Check data nullity in asText() to avoid errors
Merge pull request #33 from feugy/master

Handling folder entries for Java programs
Fix the failing case of the issue #33

If the user add an empty file (or a folder), we should STORE the file
and not DEFLATE it.
Add the notion of version in the index.html file

Fixes #32
Merge pull request #35 from dduponchel/issue32

Add the notion of version in the index.html file
Merge pull request #34 from dduponchel/issue33

Fix the failing case of the issue #33