Add two options to allow specifying the name of the program requesting
the inhibition and the reason for the request.
Move the command line parsing code to a dedicated function that takes
care of exiting the program if needed (if one of the `-v` or `-h`
options has been used, or if the command line is invalid), so that the
main function only deals with the core task it has to perform.
Encapsulate the code dealing with requesting an inhibitor lock in a
dedicated Inhibitor class. The lock is acquired in the constructor and
released in the destructor.
The constructor first tries to acquire the lock using the modern
"org.freedesktop.login1.Manager" interface, then tries the previous
"org.freedesktop.PowerManagement.Inhibit" interface as a fallback.
This is pm-inhibit, a systemd-inhibit replacement for systems without
systemd. It's a tool that allows to run a program while power management
features of the underlying desktop environment are inhibited.