nixos: make several kernel common-config options optional

Realistically, common-config is useful, but there are a lot of things in
there that are non-optionally specified that aren't always useful. For
example, when deploying grsecurity, I don't want the bluetooth,
wireless, or input joystick/extra filesystem stack (XFS, etc), nor the
staging drivers tree.

The problem is that if you specify this in your own kernel config in the
grsecurity module, by saying 'BT n' to turn off bluetooth,
common-config turns on 'BT_HCIUART_BCSP y', which then becomes unused
and errors out.

This is really just an arbitrary picking at the moment, but it should be
OK.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
nixos: Fix sysctl option merging

Using pkgs.lib.mkOverride in a sysctl option would throw a bogus error.

Also, if you defined a sysctl multiple times in the same configuration,
only one of the values would be picked up, while the others were silently
discarded.

This patch should fix both issues. If you define a sysctl multiple
times at your highest defined priority level, you will get a proper
error with detailed location information.
glibc_multi: fix ldd on x86_64
glibc_multi: fix typo
network-interfaces: Add an option for specifying search to resolv.conf
nixos: Add zram swap module

This allows you to use the Linux kernel's built-in compressed memory as
swap space functionality.

It is recommended to enable only for kernel 3.14 (which is when zram came out of
the staging drivers area) or higher.
Scatter output hook

This hook allows to scatter files in $out to multiple outputs.
For "bin" and "doc" outputs there are prefefined default masks, but
they can be overriden by setting files_<outname>, for example:

files_bin = [ "/bin/*" "/lib/libexec/" ];

To make an effect hook must be specified in buildInputs.
make use of new extractRuntimeHook
keyutils: Update from 1.5.8 -> 1.5.9
ecryptfs: Update from 82 -> 104
grsecurity: Add paxctl, paxmark and stdenv.needsPax to stdenv
spl: Fix compilation with grsecurity's constify plugin and kernels < 3.8
qimageblitz: Mark stack as non-executable (patch taken from Gentoo)

This allows applications such as okular and kolourpaint to run in
grsecurity kernels, which disallow executable stacks by default.
firefox: Add support for grsecurity
polkit: Add support for grsecurity
llvm: Add support for grsecurity
gcc: Add support for grsecurity
oraclejdk7: Add support for grsecurity
spidermonkey: Add support for grsecurity
gstreamer: Add support for grsecurity