Add support for "keydevices" in TRESOR.

This allows you to use an arbitrary block of a block device as an
additional salt to TRESOR.

It uses the tresorkeydevice= parameter and name_to_dev_t (ie the
same semantics as root=) to select the block device.

Though the block number should be considered private data, no
effort is made to keep it out of memory.  This should be fixed.

The read uses a simple bio, so many block devices are likely to
cache the request, resulting in parts of your key ending up in
memory.  This might also be fixed, though it would likely require
significant effort.  If you use a regular block device as your key
device, you are likely safe.  (TODO: check that that is actually
true)

Note that you absolutely need to include all modules in your kernel
which are required to connect the keydevice.  If you fail to do so,
your boot will hang.

It is recommended that you not have a filesystem on the key block,
as it may end up overwriting your partiular block for little or no
reason.  Note that if you are going to have a filesystem on the
device at all, you should probably do lots of digging in the code
to confirm that the blocks are read at 512-block offsets, and not
at device-dependant offsets.
When reading password from terminal, try more than just one term.

Instead of just opening /dev/tty0 or /dev/console depending on the
circumstances, try opening more than one tty/console and see which
one the user responds on.

This fixes restore-from-sleep input in some cases.