Unify kernel builds

This pull request re-implements the generic kernel builder on top of the manual-config builder. As the commit message for 39c3f49905f9fc7bcc63e42ea49af193f278eb06 says:

> This has three major benefits:

> 1. We no longer have two kernel build processes to maintain

> 2. The build process is (IMO) cleaner and cleaves more closely to
> upstream. In partuclar, we use make install to install the kernel and
> development source/build trees, eliminating the guesswork about which
> files to copy.

> 3. The derivation has multiple outputs: the kernel and modules are in
> the default `out' output, while the build and source trees are in a
> `dev' output. This makes it possible for the full source and build tree
> to be kept (which is expected by out-of-tree modules) without bloating
> the closure of the system derivation.

> In addition, if a solution for how to handle queries in the presence of
> imports from derivations ever makes it into nix, a framework for
> querying the full configuration of the kernel in nix expressions is
> already in place.

I've ensured that all linuxPackages which built before build now (at least for Linux 3.2), and fixed some that didn't work. For those that are still broken, I indicated in the commit message my guess at the cause. I've also successfully run the full NixOS test suite.

Barring strong opposition, I will merge this soon, so _please_ test with your setup and let me know if I've broken anything.