store: Raise error conditions upon protocol errors.
* guix/store.scm (&nix-error, &nix-protocol-error): New SRFI-35
condition types.
(process-stderr): Raise an error condition upon protocol errors
instead of returning to the caller. This allows the connection to be
reused for further interactions.
Add (guix utils), with `bytevector->base32-string'.
* guix/utils.scm, tests/utils.scm: New files.
Use libchop for cryptographic hashes and related.
* guix/derivations.scm (sha256): Rewrite using libchop's
`bytevector-hash'.
(derivation-hash): Add docstring.
Add unit test for derivation parsing and output.
* guix/derivations.scm: Export `read-derivation' and `write-derivation'.
* srfi/srfi-64.scm, srfi/srfi-64.upstream.scm: New files, from libchop.
* tests/derivations.scm, tests/test.drv: New files.
Split (guix) in (guix store) and (guix derivations).
* guix.scm: Move contents to other files. Just aggregate these.
* guix/derivations.scm, guix/store.scm: New files.