Fix buggy "persistence is not enabled" step.

It grep:ed for the wrong device (DM mappings are involved) so it would
pass even if persistence was disabled. Now this check uses the
persistence state file created by Tails Greeter in a way similar to
how tails-persistence-setup determines whether persistence is in use.
Also, this step's positive version now use the same approach, and both
steps were renamed to "is enabled/disabled" for greater consistency.

The old code for this step, which checks whether all persistent
directories have been successfully mounted, is put into a step of its
own, since it's still something we should test.
Merge branch 'test/rjb-migration' into test/fix-persistence-checks
Robustness improvements: more quoting in shell commands, chain commands with &&.
Merge "all persistent directories are mounted" back into "persistence is enabled".

It's the kind of low-level implementation detail that makes it harder to read
and maintain features, and that should instead be hidden in step definitions.
It's probably not in these terms that a Tails user would express their
experience of the Tails persistence feature.
Merge branch 'test/rjb-migration' into test/fix-persistence-checks
Delete volumes after each scenario unless tagged @keep_volumes.

This makes scenario dependencies from volumes shared between them
pretty explicit (if scenario i is tagged, then scenario i + 1 depends
on scenario i), so we can remove the comment about that. It also helps
keeping the free disk space requirement down as volumes don't pile up
unnecessarily after they're not needed any more.
Finish backporting test/keep-volumes-tag to pre-test/reorg.

This will need to be reverted when we merge test/reorg.
Rename scenarios to make room for the corresponding anti-tests.
First try at an anti-test for memory erasure.
Allow pidof to detect scripts too.
Add a pidof utility function.
Always use the pidof instead of pgrep.

As previously noted, pgrep sometimes detects itself, which breaks the detection
that all fillram instances have vanished.
Use spawn instead of execute to trigger a reboot over sysrq.

This command won't ever return anything to us, so it's useless (and broken) to
wait for the remote shell to reply anything to us.
Don't pretend we have filled all RAM.

We display something more precise (and generally < 100%) soon after, so it makes
no sense displaying "Memory fill progress: 100%".
Add a VM.reset utility method.

... using virsh as ruby-libvirt 0.4 does not support the reset method :(
Force reboot the VM with libvirt instead of using sysrq.

This should be more robust.
Wait for a dedicated boot splash screenshot at post-VM-reset time.

At this time, the display resolution is different from the one on startup,
so Sikuli can't find TailsBootSplash.png.
Add memory erasure anti-test for non-PAE too.
Optimization: don't dump guest memory twice in the anti-test.

We already grep for the pattern after rebooting, no need to do it
before.
Create /var/run/tails-upgrader at boot time.

Tails Upgrader is run as a non-privileged user, so it cannot create its run
directory itself.