DoubleClickCrypto fixes and optimizations

- Encryption and decryption were incorrect for payloads
  of variable size, needing block cypher with >1 block
- Lots of changes for readability, adopting the same
  identifiers used in DoubleClick's crypto specifications
- Some optimizations for buffer usage