Add a SodaFountainClient class that can be imported and used by other services

You should never catch a Throwable.  They mean (in Java) "the JVM is exploding and should be shut down now" and/or (in Scala) "the user is doing something that cannot be expressed with the JVM's control-flow primitives" (most notably returning from an inner block).