[DEVEXP-346] Allow docker type build from a repo with additional directory

This is the initial part of the work behind adding the additional directory to docker builds, especially this commit covers restructuring the `BuildInput` object splitting the docker related and STI related stuff into sub-objects. 
Still to do: 
- [x] docs
- [x] build image
It seems we would lose some function if we now always download the source ourselves, instead of letting docker deal with it when the context directory is not specified. See https://github.com/docker/docker/blob/master/api/client/commands.go#L140-L157