Unit test for the Encrypt class

The test data are provided by:
Cryptographic Algorithm Validation Program
National Institute of Standards and Technology

http://csrc.nist.gov/groups/STM/cavp/index.html

Used AES Multiblock Message Test (MMT) Sample Vectors
from http://csrc.nist.gov/groups/STM/cavp/documents/aes/aesmmt.zip
(the actual file used in that zipped file is CBCMMT128.rsp)

Also adds a class Kohana_EncryptTest_TestableEncrypt that wraps the
Encrypt class to mock out the actual mcrypt_create_iv calls.

However, it also changes Kohana_Encrypt internal API by adding
a protected function _create_iv to proxy mcrypt_create_iv
and to allow mocking and testing against KAT vectors.

Addresses #543.

Ready for merge. Kindly review thoroughly.

Thanks!
@enov great. I don't think you need to test `_iv_size` - it's calculated from mcrypt inside the class based on the cipher and method arguments. It's implementation detail that's covered by the fact your tests for encrypt/decrypt would fail if it broke.

You only need to spy into the class for the args provided to the constructor, everything else is covered by your behaviour tests already.