system: Separate the activation script from the boot script.

* gnu/system.scm (operating-system-activation-script): New procedure,
  containing most of the former 'operating-system-boot-script'.
  (operating-system-boot-script): Call it, and 'primitive-load' its
  result.
* guix/build/activation.scm (%booted-system): Remove.
  (activate-current-system): Remove #:boot? parameter and related code.
system: Always create /var/empty.

* guix/build/install.scm (directives): Add /var/empty.
services: Support per-service activation scripts.

* gnu/services.scm (<service>)[activate]: New field.
* gnu/system.scm (operating-system-activation-script)[service-activations]:
  New procedure.  Use it, and primitive-load each activation.
services: nscd: Provide an 'activate' script to make /var/run/nscd.

* gnu/services/base.scm (nscd-service): Add 'activate' field.
* guix/build/install.scm (directives): Remove /var/run/nscd; add
  /var/run.
* doc/guix.texi (Defining Services): Add 'activate' field in example.
  Document it.
store: Remove misleading 'setsockopt' call.

* guix/store.scm (open-connection): Remove misleading 'setsockopt' call,
  erroneously introduced in df1fab58.  This would actually shrink the
  receive buffer from 124 KiB to 12 KiB, though it had little impact on
  performance.
doc: Augment "Package Naming".

* doc/guix.texi (Package Naming): Mention underscores, and give SDL_net
  as an example.
gnu: Add inotify-tools.

* gnu/packages/linux.scm (inotify-tools): New variable.
gnu: Add librsync.

* gnu/packages/rsync.scm (librsync): New variable.
gnu: Add mcrypt, libmcrypt, and libmhash.

* gnu/packages/mcrypt.scm: New file.
* gnu/packages/patches/mhash-keygen-test-segfault.patch: New patch.
* gnu-system.am (GNU_SYSTEM_MODULES): Add file.
  (dist_patch_DATA): Add patch.
gnu: Add gsegrafix and dependent libraries.

* gnu/packages/math.scm (gsegrafix): New variable.
* gnu/packages/gtk.scm (pangox-compat): New variable.
* gnu/packages/gnome.scm (libidl, orbit2, libbonobo, gconf, gnome-mime-data,
  gnome-vfs, libgnome, libart-lgpl, libgnomecanvas, libgnomeui, libglade,
  libgnomeprint, libgnomeprintui, libbonoboui): New variables.
gnu: Add Transmission.

* gnu/packages/bittorrent.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
services: Add D-Bus and Avahi.

* gnu/services/dbus.scm: New file.
* gnu/services/avahi.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add them.
gnu: Add python-lockfile.

* gnu/packages/python.scm (python-lockfile): New variable.
gnu: Add python-mock.

* gnu/packages/python.scm (python-mock): New variable.
gnu: Add duplicity.

* gnu/packages/backup.scm: New file.
* gnu-system.am: Add it.
gnu: librsync: Fix source uri

* gnu/packages/rsync.scm (librsync) [source]: Fix sourceforge uri.
gnu: Add Autoconf 2.64.

* gnu/packages/autotools.scm (autoconf-2.64): New variable.
store: Work around 'get-bytevector-n' bug that affects 'import-paths'.

Fixes <http://bugs.gnu.org/17591>.

* guix/store.scm (process-stderr) <%stderr-read>: Use
  'get-bytevector-n!' instead of 'get-bytevector-n'.
syscalls: Be more permissive in 'umount' test.

* tests/syscalls.scm ("umount, ENOENT"): Rename to...
  ("umount, ENOENT/EPERM"): ... this.  Accept EPERM as a valid return
  value.
gnu: hdf5: Fix source download location.

* gnu/packages/maths.scm (hdf5): Use "release" directory and not the "current"
    directory for the source, which does not break on new upstream releases.