Removing padding from the encryption API

* Padding is fundamentally an operation that occurs prior to encryption to make plaintext suitable.
* Even though wether it's regarded is dependent on the mode, it can be used safely regardless.
* Moving it out of this API makes the API's simpler and more composable.
* Moving it out of this API makes it simpler for backends that don't work exactly like OpenSSL's EVP.
* Move it out of this API makes it simpler to include padding that OpenSSL's EVP API doesn't expose.