Added the file encryption/decryption functions in BlockCipher

According with the [last refactor](https://github.com/zendframework/zf2/pull/6410#issuecomment-47108687), I added a new class `Zend\Crypt\FileCipher` for the encryption/decryption of files.
The main methods of this class can be used to encrypt/decrypt a file:
- `encrypt($fileIn, $fileOut)`
- `decrypt($fileIn, $fileOut)`

where `$fileIn` is the input file to encrypt/decrypt and `$fileOut` is the output file. The compression of the file is executed before the encryption of the file. You can disable the compression using `setCompress(false)` before the encryption. 
The compression is managed using the `compress.zlib://` stream and it's done before the encryption, following the best practices of applied cryptography.
The  `Zend\Crypt\FileCipher` component can be used to encrypt/decrypt files of any dimension. I used a buffer memory of 1 MB to read the files, block by block.The encryption of file follows the same procedure of BlockCipher `encrypt()`, using **encryption-then-authenticate** approach with HMAC (SHA256 by default).
Do we really need to allow `string` here?