GMS join/leave handling fixes; log all host state views

Related to issues found in EUCA-4952 there are two fixes:

1. Handling of the database disable in the HostMapStateListener.entryRemoved()
   synchronously can cause the calling GMS thread to block.  This is not safe.
   Replace the synchronous call w/ a submission to the existing dbExecutor for
   this purpose.

2. During merge the condition for identifying the primary partition coordinator
   was incorrect.  This made it possible for conflicting/incomplete state to
   occur after two partitioned views merge back together.  The fix is to find
   the primary partition coordinator and only sync that state to each hoist.

Last, the changeset includes logging which captures and records:
- all host view state changes
- system state and cause during failstop
- system state in non-fatal error paths
EUCA-4952 Hosts join is sometimes mistreated as a partition merge; which subsequently fails with a NullPointerException