Minor Zip related changes to reduce allocation hotspots 

- Convert ZipFile and ZipOutputStream to use above mentioned methods to avoid object alloction hotspot (jprofiler) especially for large jars.
- Create sufficiently large HashTable right away for all entries to avoid resizing penalty with large jars (like weblogic.jar ...)
- Replace ArrayList with LinkedList to reduce alloc-copy overhead when creating large INDEX.LST file
- Introduce Calendar per thread (with ThreadLocal) to avoid creating a new Calendar when creating the Date for every ZipEntry
- Misc: move array allocation out of loop when possible