added custom exceptions for building key versions, encryption, decryption
added constructor taking just one parameter, (Throwable cause) to allow for exception chaining
changed to use custom K2 exceptions, deprecated old encryption and decryption methods (now in SymmetricEncryption instead)
updated tests to use custom exceptions