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.
Add a logging shell library.
Add a shell library for hardware related stuff.
Add shell library for checking Tails Greeter settings.
Add helper script useful for MAC spoofing.

It has options for taking into account the setting selected in Tails
Greeter.
Hook MAC spoofing to an udev rule.

This way it doesn't matter if devices are added before or after MAC
spoofing has been enabled or disabled in Tails Greeter; they will get
the correct setting no matter what (provided we unspoof devices added
after T-G if MAC spoofing is disabled).
Add missing quotes.
Clarify comment.
Set -e explicitly. Also -u as bonus.

Settings in the shebang are ignored if scripts invoked by an explicit
shell.
Be more careful with whitespaces in macchanger output.

One of the Debian patches actually changes this, so let's stay
on the safe side.
Merge remote-tracking branch 'origin/devel' into feature/spoof-mac
Remove unused function from shell library.

It wasn't very robust any way, so let's implement it properly in the
future if we need it.
Add monitor for detecting network blockage.

Since we enable MAC spoofing by default, users may experience network
connection issues on networks emplying MAC address blocking.
Unfortunately NetworkManager does not seem to offer any nice hook into
its error-handling, so when MAC spoofing is enabled we run (from T-G)
this crufty script which analyzes NM's log and tries to identify
connection failures that is unrelated to more common errors, like
entering an incorrect WPA passphrase. At the moment the script only
handles wifi networks, not wired, WAN, etc.
Don't use unset variables as "booleans" when we `set -u`.
Block probing of all network devices.

We also add a script that undoes this by unblocking the modules and
making udev re-probe for devices. This script is intended to be run
from T-G's PostLogin script, if MAC spoofing is enabled.
Merge branch 'feature/block-network' into feature/spoof-mac

Conflicts:
	config/chroot_local-packageslists/tails-common.list
draft for explaining how to change persistence passphrase
system requirements rephrasing to explicitly includes Mac
unbolding things
Fix typo in script.