lib/db: _compute_package_state(): compute dep_states once

Signed-off-by: Andreas Beckmann <anbe@debian.org>
lib/db: get_best_package_state(): consider providers as well

the real package may be uninstallable (e.g. mplayer), but another package
providing that as a virtual package (e.g. mplayer2 in this case) can be
used to fulfill a dependency

Signed-off-by: Andreas Beckmann <anbe@debian.org>
lib/db: test essential-required packages like regular ones

do not classify them as essential-required initially
the install and upgrade tests will be no-ops with an adequate run afterwards
needed as an early indicator that some essential package is rc-buggy

Signed-off-by: Andreas Beckmann <anbe@debian.org>
p-r: mark essential-required as obsolete

removing the always-empty category from the report

Signed-off-by: Andreas Beckmann <anbe@debian.org>
update special cases for experimental

Signed-off-by: Andreas Beckmann <anbe@debian.org>