Block cipher operation modes: ECB, CBC, CTR and CCM

Hey.

This is the followup to #1200. Refactored, rebased and without the crypto shell example. It adds support for ECB, CBC, CTR and CCM (RFC 3610) block cipher operation modes. This is the version we are currently using in our DTLS working branch. To omit a pull request of death for DTLS we would be happy if we could manage to merge this before.

Regards
Nico
For me it makes logically more sense to restructure this in different modules. Additionaly the resulting binary blob will be smaller and in most cases you only need one or two ciphers.

Whats your point with *bloats the diff*. Do you look only at `Files changed` of this PR?