(PDB-2071) Use shared atom for terminus failover
When running under PuppetServer, there can be many terminii running at once in many JRuby instances. For sticky read failover to work properly, the index of the last working server must be shared among these. This uses the new PuppetDBTerminusState java class in PuppetServer to store the shared data. When the java class is not available, or when running under MRI, a local instances of a Ruby atom class is used. It obeys the same semantics but is not shared across Ruby instances.
Showing with 15 additions and 4 deletions