eCryptfs: Extend file headers to store cipher mode.

This patch changes the way eCryptfs headers use tag 3 (symmetric key)
and tag 1 (asymmetric key) packets, adding fields to store cipher mode
while keeping the format byte compatible with older version of eCryptfs
when CBC mode is used.

For tag 1 packets, the 1 byte cipher identifier field used to always
contain a constant value that was ignored when reading in the header.
This has been repurposed to hold the cipher mode code. For tag 3
packets, an extra cipher mode field has been added, which will
only be present if the cipher mode used is other than CBC.

In both cases, the tag version number is incremented when a packet is
written that is not byte compatible with older versions of eCryptfs.
This happens whenever CBC mode is not used.
Re-enable GCM and ECB modes.

Selectively reverts parts of bb845c81133c5796604dac0f8bfadd240689e543 and
4eff0f302729da0a7bd87847a5ba2ed155875d9b.