More Encrypt tests

test_encode_decode:
Explicitly verifying that value > encode > decode === value

test_decode_invalid_data:
Tests for decode when the string is not valid base64, or is too short to
contain a valid IV

test_consecutive_encode_produce_different_results:
A test without the iv stubbed to verify that consecutive calls to encode
the same value produce different results

test_instance_throw_exception_when_no_key_provided
When an encryption key is not configured, the method `instance`
should throw a Kohana_Exception

test_instance_returns_singleton
Tests for method instance - that it returns singleton, that an instance
created through the instance method has the expected configuration