Refactor decryption and decompression handling

* Compose decryption and decompression streams based on header fields in a single method. This method also removes the need for a separate ZZDecrypter hierarchy.

* Check for unsupported compression methods.

* -[ZZArchiveEntry newStreamWithError:] now always calls -[ZZArchiveEntry newStreamWithPassword:error:].
Fix old archive entry sanity check not actually working
Refactor zip headers

* General purpose bit flag is now an enum class with bitwise operators.

* Extra field member function can now return a desired type (for future expansion).

* More AES types spelled in the correct case.