[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



> On Oct 10, 2014, at 1:38 PM, Andy Goldstein <notifications@github.com> wrote:
> 
> In images/builder/docker/docker-builder/build.sh:
> 
> >  
> > -if [ -n "$DOCKER_REGISTRY" ] || [ -s "/.dockercfg" ]; then
> > +if [ -n "$REGISTRY" ] || [ -s "/.dockercfg" ]; then
> I know this isn't new with this PR but I still don't like this logic. If the build input specified a registry, but there's no .dockercfg, this will still attempt to push. That will work fine if the registry doesn't require authentication, but will fail otherwise.
> 
> Also, building without pushing to a registry doesn't serve much of a purpose, other than it means you can test builds without having to stand up a registry. I'd like us to quickly move to requiring a registry - if not part of this PR, then soon after.
> 
Hrm - test cases can be run in builds.  Not sure push is required, just normal.
> —
> Reply to this email directly or view it on GitHub.