##### 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.
are installed. C(fixed) attempt to correct a system with broken dependencies in place.
    default: present
    choices: [ absent, build-dep, latest, present, fixed ]
  update_cache:
    description:
      - Run the equivalent of C(apt-get update) before the operation. Can be run as part of the package installation or as a separate step.
    type: bool
    default: 'no'
  update_cache_retries:
    description:
      - Amount of retries if the cache update fails. Also see I(update_cache_retry_max_delay).
    type: int
    default: 5
    version_added: '2.10'
  update_cache_retry_max_delay:
    description:
      - Use an exponential backoff delay for each retry (see I(update_cache_retries)) up to this max delay in seconds.
    type: int
    default: 12
    version_added: '2.10'
  cache_valid_time:
    description:
      - Update the apt cache if its older than the I(cache_valid_time). This option is set in seconds.
      - As of Ansible 2.4, if explicitly set, this sets I(update_cache=yes).
    default: 0
  purge:
    description:
     - Will force purging of configuration files if the module state is set to I(absent).
    type: bool
    default: 'no'