Define "push" goal for plugin

Added new new mojo with goal "push-images" which by default binds to the
"install" phase.  Mojo accepts a list of image-ids to push. I opted out
of using the built ids shared between build, start & stop. This was
partly because the nameAndTag information from build was not being
retained, but also to allow greater control over which containers were
pushed e.g. allowing some containers to built and started for an it, but
not necessarily pushed. (If using both the "build" and "push" goals, it
is presumed that the images you want to push are "kept".)

A prereq enhancement here was to allow the mojos to accept docker
credentials (user, email, password) as config parameters. However, I
have only updated ImageService.push to actually use these credentials.

While I was here, I modified ImageDescriptor to be a bit more flexible
when reading images id, specifically adding support for port numbers and
hyphens ("-") in the registry-part.

As for testing, added a new it which exercises pushing and in that
loading and using credentials. The test is driven off new maven
properties:

- docker.userName
- docker.password
- docker.email
- docker.registry

I ran these (set from my personal .m2/settings.xml) pointing to both the
public docker hub and my private docker registry, with success. However,
because these configs are no good for the CI env or you, I have marked
the push goal skip=true for commit. 

Will happily update the doco if you grant approval to the design.