Renamed storage->Storage
Added protobuf Vault and File headers
Added protobuf to build.gradle
Reworked crypto and file classes

Changes:

Replaced the unsecure AES ECB mode encryptor with a AES CTR mode
encryptor. This implements the interface Crypter. Secrecy could use
different implementations of this interface for encryption.

The AES CTR encrytor uses a random AES key to encrypt all files in a
vault. This random AES key is stored encrypted with a key, generated
from a passphrase and a random salt using PBKDF2.

Each file has a header with a random nonce for the AES CTR encryption.
Filenames are replaced with random UUIDs and the original file name is
stored encrypted in the file header.

The old File class is replaced by the abstract class SecrecyFile which
has two concrete sub-classes: EncryptedFile and EncryptedThumbnail.
These  two are created and loaded by the EncryptedFileFactory.

Events are now models as own classes. I think this improves readability.

Two own Exceptions SecrecyCipherStreamException and SecrecyFileException
are introduced to handle special exceptions.
Fixed crash on loading thumbnails for non-media files
Added AES CBC encrypter

AES CBC and CTR encrypter only differ in the selected encryption
algorithm. Therefor the AES_Crypter class contains all common methods.
Added legacy ECB encrypter

This is just for upgrading purposes. Thumbnail creation and other
functions does not work, but it can read old ECB encrypted files for
upgrading purposes.
Try other random file name if random file name already exists.
Added method to change passphrase of a vault
Added possiblity to change vault passphrase from the user interface
Added German strings for passphrase change action
Fixed doubled file extention on decrypted files
Fixed: Deletion of files now also deletes file and thumbnail header
Fixed possible NullPointerException in EncryptedFileFactory
Code cleanup. Removed unecessary imports, declared variables as final if possible
Added updater for old ECB vaults
- A progress bar showing the update status is missing
- There is no error handling if re-encryption is aborted
Fixed: Vault header was not created when adding new vault.
Instead this has been created when the vault is opened for the first time.
Merge pull request #19 from L-Henke/encryptionRefactorization

Encryption refactorization