Add the option to use the java-docker API instead of the command line.

We do development on Windows which does not currently have a Docker
command line client.  This makes it hard to use the original version of
the plug-in.  This commit allows the use of the
[docker-java](https://github.com/docker-java/docker-java) client instead.
The following configuration options are added:

- useApi -- boolean which indicates whether to use the API or the command
  line client.  The default value is `false`.
- serverUrl -- the URL for the docker server.  If the value is null then
  we use the default value.
- username -- the name of the Docker user if authentication is required.
- password -- the password of the user if authentication is required.
- email -- the email of the user if authentication is required.
Fix for handling of convention closures.
Some minor fixes

Fix defaults for serverUrl and username so that we can properly detect
when they are set.

Allow stageDir to be augmented with a context directory in order to
support projects that want to build more than one image.

Fix some comments (Dockers use of registry and repository continues to
confound me).
Merge branch feature-javaApi (from 'YouTechnology-master') into dev
Cosmetics
Merge branch 'master' into dev
Removing unused example files.
Examples: Fetch gradle-docker from mavenLocal first, then from jcenter
Use docker-java versin 0.9.0 instead of 0.9.1
Extracted native and java docker client logic from DockerTask.
Defer evaluation of extension properties.
DockerClient logging.
guava Preconditions.
Add the option to use the java-docker API instead of the command line.

We do development on Windows which does not currently have a Docker
command line client.  This makes it hard to use the original version of
the plug-in.  This commit allows the use of the
[docker-java](https://github.com/docker-java/docker-java) client instead.
The following configuration options are added:

- useApi -- boolean which indicates whether to use the API or the command
  line client.  The default value is `false`.
- serverUrl -- the URL for the docker server.  If the value is null then
  we use the default value.
- username -- the name of the Docker user if authentication is required.
- password -- the password of the user if authentication is required.
- email -- the email of the user if authentication is required.
Add usage information for `useApi` to the readme.
Cleanup post rebase

Some corrections/additions to the readme.

Force use of new Docker port by default (since we're using 0.9.0 for now)
Remove extra spaces
Renaming remote API related extension properties.
Renamed log to logger.
Fixed image tagging overriding and default.