[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
This is a security vulnerability - whitespace values.  This whole file should be using `'${FOO}'` (note single quotes, no expansion).  Makes me lean towards go because we cannot risk compromise in a builder (it has access to the Docker Socket)