##### SUMMARY
When doing a harmless apt install for a package, this might uninstall other packages and break stuff heavy, especially if there are lots of pending upgrades.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
apt

##### ANSIBLE VERSION
```
ansible 2.8.2
  config file = /home/alexg/mw-config/ansible.cfg
  configured module search path = [u'/home/alexg/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /home/alexg/.local/lib/python2.7/site-packages/ansible
  executable location = /home/alexg/.local/bin/ansible
  python version = 2.7.15+ (default, Jul  9 2019, 16:51:35) [GCC 7.4.0]
```

##### CONFIGURATION
```
DEFAULT_CALLBACK_PLUGIN_PATH(/home/alexg/mw-config/ansible.cfg) = [u'/home/alexg/mw-config/ansible/plugins/callback']
DEFAULT_CALLBACK_WHITELIST(/home/alexg/mw-config/ansible.cfg) = [u'zabbix']
DEFAULT_HOST_LIST(/home/alexg/mw-config/ansible.cfg) = [u'/home/alexg/mw-config/inventory']
DEFAULT_ROLES_PATH(/home/alexg/mw-config/ansible.cfg) = [u'/home/alexg/mw-config/roles']
DEFAULT_STDOUT_CALLBACK(/home/alexg/mw-config/ansible.cfg) = nice_failures
```

##### OS / ENVIRONMENT
target server was a debian machine, pending an upgrade stretch->buster

##### STEPS TO REPRODUCE
Just running something like
```yaml
  - name: "Install some packages"
    apt:
      name: vim
      state: present
      update_cache: yes
```
can make the underlying apt uninstall some packages, depending on the current apt status. In this case installation of 4 basic packages on the machine with 600+ packages pending upgrade caused apt to uninstalled the VM hypervisor...

##### EXPECTED RESULTS
Need more control on dependency handling:
default should be to install package + requirements, but never uninstall other packages. That should get a separate option.
Alternative would be to fail when there is a uninstall going to happen, or just fail when there are pending upgrades at all.

##### ACTUAL RESULTS
Uninstalled libvirtd, shtudown of 5 VMs...Can't reproduce right now, because had to rush to fix it.
I guess this is obvious behaviour when you run apt install -y $package.
cmd_dpkg = m.get_bin_path("dpkg", True)
    cmd = cmd_dpkg + " --field %s %s" % (deb_file, field)
    rc, stdout, stderr = m.run_command(cmd)
    if rc != 0:
        m.fail_json(msg="%s failed" % cmd, stdout=stdout, stderr=stderr)
    return to_native(stdout).strip('\n')
def install_deb(m, debs, cache, force, install_recommends, allow_unauthenticated, dpkg_options):
    changed = False
    deps_to_install = []
    pkgs_to_install = []
    for deb_file in debs.split(','):
        try:
            pkg = apt.debfile.DebPackage(deb_file)
            pkg_name = get_field_of_deb(m, deb_file, "Package")
            pkg_version = get_field_of_deb(m, deb_file, "Version")
            if len(apt_pkg.get_architectures()) > 1:
                pkg_arch = get_field_of_deb(m, deb_file, "Architecture")
                pkg_key = "%s:%s" % (pkg_name, pkg_arch)
            else:
                pkg_key = pkg_name
            try:
                installed_pkg = apt.Cache()[pkg_key]
                installed_version = installed_pkg.installed.version
                if package_version_compare(pkg_version, installed_version) == 0:
                    # Do
                    continue
            except Exception:
                # Mu