FIX #365 ADD command per mapping entry to enable docker caching

## 3rd party and application jar split

I reworked the change. Now a maximum of _4_ `ADD` commands are created to
avoid AUFS out of layer errors. The basic idea as suggested from @ahjohannessen 
is to separate _app_ and _lib_ jars.

In the end the docker file contains up to four `ADD` commands.

```scala
ADD /files/opt/docker/bin /opt/docker/bin
ADD /files/opt/docker/lib /opt/docker/lib
ADD /files/opt/docker/app /opt/docker/lib
ADD /files/opt/docker/conf /opt/docker/conf
```

## Separation

The separation is done by a new setting `dockerAppLibraryRegex` which defaults to

```scala
dockerAppLibraryRegex := s"lib/${(organization in Docker).value}.*\\.jar$$",
```

meaning _every jar in the lib folder that start with the groupId of your company_,
which should be sufficient for most cases.

## Concerns

I don't like the way the universal application structured, which is provided by
the `java_application` archetype is used to do the mapping. I'm not sure if
coupling the `DockerPlugin` and the `JavaAppPackaging` too close is a good idea.

@ahjohannessen could you check if this fixes your issue?

@fiadliel I always appreciate your comments on docker :)