Added a close method to DockerClient

Give programs using DockerClient an opportunity to release resources claimed
by the http client created inside DockerClient.
Removes username from tests when unused

The field is never used in these tests. It should make it easier to
separate tests that require a docker.io account from those that do not.
Cleans up DockerClient constructor

Just doing a little refactoring of the constructor to make it easier to
read.
Creates an injectable CommandFactory for DockerClient

In order to improve the usability of DockerClient in tests, this
introduces a CommandFactory interface (and default implementation). The
interface can be injected into the DockerClient at construction,
allowing the use of a CommandFactory that returns mock or stub commands
for later test assertions.

I envision that the methods that create the commands from the
DockerClient itself could be deprecated: users of the library could
create the commands from the CommandFactory directly and simply pass
them into the DockerClient#execute method where teh baseResource and
(if appropriate) authConfig would be set on the command before it's
executed.

Issue #25
Adds some getters to command objects

This only adds getters for fields that are of immutable types (Strings,
booleans, ints). For objects that take in Config objects, I'll look at
adding getters in a future commit. Ideally all of these things would be
immutable.

Issue #25
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.
Add ping method
Merge pull request #29 from mfulgo/for-upstream-24

Makes Config a public, immutable class with a builder
Merge branch 'docker-client-closeable' of
https://github.com/kimble/docker-java into
kimble-docker-client-closeable

Conflicts:
	src/main/java/com/github/dockerjava/client/DockerClient.java
t push origin master:Merge branch 'kimble-docker-client-closeable'
Merge branch 'for-upstream' of https://github.com/mfulgo/docker-java
into mfulgo-for-upstream

Conflicts:
	src/main/java/com/github/dockerjava/client/DockerClient.java
Merge branch 'mfulgo-t push origin masterfor-upstream'
Merge branch 'ping_cmd' of https://github.com/vjuranek/docker-java into
vjuranek-ping_cmd

Conflicts:
	src/main/java/com/github/dockerjava/client/DockerClient.java
Merge branch 'vjuranek-ping_cmd't push origin master
Change VolumesFrom to array