Makes Config a public, immutable class with a builder

This makes Config a public class, so it can be passed into the
DockerClient constructor from code in different packages. It also
makes Config an immutable object and includes a builder for convenience.

Fixes issue #24.