Port encrypted yaffs2 support from WhisperCore to CyanogenMod

This is a port of [WhisperYAFFS](https://github.com/WhisperSystems/WhisperYAFFS), the encrypted yaffs2 code used in the [WhisperCore ROM](http://whispersys.com/whispercore.html), to the version of yaffs2 in cm-kernel.

I've been running with an encrypted /data on my Nexus One using this code with CM 7.1.0 for the last week, and I was running the version in WhisperCore for a few months before then. I haven't seen any problems with either version. This is just the kernel bits of course. I'm still working on the GUI to enter the password at boot time (unfortunately the GUI in WhisperCore was not open-sourced).

The tons of commits included in this pull request are because I did a git merge of the yaffs2 upstream to make future merges easier.

Gary