changed handling of zip directories

Changes:
- unzipping creates all intermediate subdirectories
- updated tests accordingly to check this too
- renamed function unzipModData() to unzipData() as it's supposed to be general unzipping
- used NIO for file handling to have better error reporting

PS: I also signed the ECL.