Application and Droplet abstractions

This major change codifies the use of the Application and Droplet
abstractions.  These abstractions ensure visibility constraints and
standard treatment of paths across all components.  The changes here
are compatibility breaking and will be documented in the commit that
follows.
Merge 61738342-abstractions to master

[#61738342]