The existing code was using:
a[b][c[d]]
where a[b] would always exist and c[d] would always exist.
But the nested index would not alway exist, particularly when a DigitalOcean item disapeared.
This changes that nested index to a `get` and properly handles None results.
This bug was present in two spots in this file.
The `dopy` library function all_images includes a 'global' filter
by default. This was preventing private images from showing up
in --images.
The problem also made this script fail immediately for people
who had droplets previously created with private images.
* Always refresh droplet information (versus getting it from cache) for
--list, --host, --droplets, and --all. All the DigitalOcean calls are
pretty fast and without this change, inventory was often stale/incorrect.
For example, previously if you destroyed a droplet, the inventory
script would still find it and attempt to act on it.
* Added --force-cache option
* Added some option shortcuts -d, -r
* Added more value sanitization