nixos/graphite-service: fix startup issue

The preStart snippets (graphite, carbon) try to create directories under
/var/db/. That currently fails because the code is run as user
"graphite". Fix by setting "PermissionsStartOnly = true" so that the
preStart stuff is run as 'root'.

Further:
 * graphite-web-0.9.12/bin/build-index.sh needs perl, so add it to PATH.
 * Now that preStart runs as root, we must wait with "chown graphite"
   until we're done creating files/directories.
 * Drop needless check for root (uid 0) before running chown.
nixos/grahite-service: mkdir -m => mkdir && chmod

mkdir -m will only set the permissions if it *creates* the directory.
Existing directories, with possibly wrong permissions, will not be
updated.

Use explicit chmod so permissions will always be correct.
herbstluftwm: update to 0.6.2
jdk7: update patchversion 51 -> 55.
Bump mpv to 0.3.8
Add subtitle option for ffmpeg.
Fix whitespace
libmx: Add package
eigen: upgrading version to 3.2.1
libgnurl, a fork of libcurl used by GNUnet
gnunet: add libgnurl and GnuTLS as dependencies

libgnurl is essential for bootstrapping (needed to download a hostlist).
GnuTLS is needed by gnunet-gns-proxy.

Also sort dependencies alphabetically.
Shea told me composableDerivation is hard to understand.

Thus comment it and why it was written long time ago until it'll get replaced piecewise.
haskell-libmpd: jailbreak to fix build with recent versions of 'text'
xmonad-contrib: patch to fix build with GHC 7.8.2
haskell-ghc-mod: disable test suite to fix build with GHC 7.8.2

https://github.com/kazu-yamamoto/ghc-mod/issues/242
haskell-ghc-mod: make sure GHC <7.8 and >7.8 pick the same datadir install path
pkgs/build-support/cabal: revert "the release version of GHC 7.8.x no longer requires"

This reverts commit a2a398fbda842594ab17d0b98f68dba4c51e49e8. The
issue *does* still exist in GHC 7.8.2. Compiled binaries have no -rpath
into their own install directory ("$out") and thus cannot find their own
shared libraries. To work around this issue, we pass an explicit -rpath
argument at configure time. We do that only on Linux, though, because
-rpath is known to cause trouble on Darwin, which was the reason I
originally reverted that patch.
cabal-bounds: re-generate with cabal2nix
haskell-ghc-mod: re-generate with cabal2nix
btsync: remove unneeded assertion

Signed-off-by: Austin Seipp <aseipp@pobox.com>