gnu: openmpi: Add memchecker support.

* gnu/packages/mpi.scm (openmpi) [inputs]: Add valgrind.  Unpropagate
  gfortran.  [arguments]: Add configure flags for memchecker.
vm: Avoid resetting timestamps twice.

* guix/build/vm.scm (initialize-hard-disk): Don't call
  'reset-timestamps' when REGISTER-CLOSURES? is true.
* guix/build/install.scm (register-closure): Mention timestamps in
  docstring.
store: Change #:store parameter to #:prefix.

* guix/store.scm (register-path): Change #:store to #:prefix.
guix system: Add 'init' sub-command.

* guix/scripts/system.scm (install): New procedure.
  (guix-system)[parse-option]: Remove check for extraneous arguments.
  [match-pair, option-arguments]: New procedures.
  Use 'option-arguments'.  Honor 'init'.
  (show-help): Document 'init'.
* doc/guix.texi (Invoking guix system): Document 'init'.
system: Add 'grub-configuration' record.

* gnu/system/grub.scm (<grub-configuration>): New record type.
  (grub-configuration-file): Add 'config' parameter; remove
  #:default-entry and #:timeout.  Honor CONFIG.
* gnu/system.scm (<operating-system>): Remove 'bootloader-entries'
  field; remove default value for 'bootloader' field.
  (operating-system-grub.cfg): Pass the 'bootloader' field to
  'grub-configuration-file'.
* build-aux/hydra/demo-os.scm (bootloader): New field.
system: Prevent grub.cfg from being GC'd.

* guix/build/install.scm (install-grub): Use 'copy-file' instead of
  'symlink' for GRUB.CFG.
guix: licenses: Add CeCILL-C license.

* guix/licenses.scm (cecill-c): New variable.
gnu: Add scotch package.

* gnu/packages/maths.scm (scotch): New variable.
* gnu/packages/patches/scotch-test-threading.patch: New patch.
* gnu-system.am (dist_patch_DATA): Add it.
gnu: Add pt-scotch package.

* gnu/packages/maths.scm (pt-scotch): New variable.
gnu: Add superlu-dist package.

* gnu/packages/maths.scm (superlu-dist): New variable.
* gnu/packages/patches/superlu-dist-scotchmetis.patch: New patch.
* gnu-system.am (dist_patch_DATA): Add it.
vm: Make the device name a parameter.

* guix/build/vm.scm (initialize-partition-table): Honor 'device'
  parameter.
  (initialize-hard-disk): Add 'device' parameter and honor it.
* gnu/system/vm.scm (qemu-image): Adjust accordingly.
guix system: 'guix system init' installs GRUB by default.

* guix/scripts/system.scm (install): Add #:grub?, #:grub.cfg, and
  #:device parameters; honor them.
  (show-help): Document '--no-grub'.
  (%options): Add '--no-grub'.
  (%default-options): Add 'install-grub?'.
  (guix-system): Honor 'install-grub?' option from OPTS.  Adjust
  'install' call accordingly.
* doc/guix.texi (Invoking guix system): Document '--no-grub'.
doc: Show the 'bootloader' field in system example.

* doc/guix.texi (Using the Configuration System): Add 'bootloader'
  field.
guix system: Factorize out closure copy.

* guix/scripts/system.scm (copy-closure): New procedure.
  (install): Use it.
guix system: Check whether we are installing to /.

* guix/scripts/system.scm (install): Check whether TARGET is / and warn.
ui: Gracefully deal with zero-output derivations.

* guix/ui.scm (show-what-to-build)[built-or-substitutable?]: New
  procedure.  Check whether OUT is #f.
  Use it.
* tests/ui.scm ("show-what-to-build, zero outputs"): New test.
gnu: Add Linux kbd.

* gnu/packages/linux.scm (kbd): New variable.
gnu: Add offlineimap

* gnu/packages/mail.scm (offlineimap): New variable.
gnu: Add mu.

* gnu/packages/mail.scm (mu): New variable.
gnu: offlineimap: fix license.

* gnu/packages/mail.scm (offlineimap) [license]: Change to gpl2+.