use function-local storage for cipher and hmac keys

Composite ciphers (cipher + hmac) use both keys at the same time. This
patch is the first in a series that adds support for composite ciphers
keys.

Signed-off-by: Cristian Stoica <cristian.stoica@freescale.com>
Signed-off-by: Phil Sutter <phil@nwl.cc>
refactoring: enclose keys to support composition

The enclosing structure refers to both keys either as individuals
or as a group. For block ciphers and hmacs, both keys are used
independently. For composite ciphers the whole structure will be
used as a single key.

Signed-off-by: Cristian Stoica <cristian.stoica@freescale.com>
Signed-off-by: Phil Sutter <phil@nwl.cc>
add support for composite aead keys

- block and stream ciphers have their keys copied from userspace
  just like before
- for aead composite ciphers, the cipher and hmac keys are
  combined into a single key

Signed-off-by: Cristian Stoica <cristian.stoica@freescale.com>
Signed-off-by: Phil Sutter <phil@nwl.cc>