Add a generic builder
Add a generic builder

This code is based on old goaci.go, it adds three things:

1. Builder itself which executes common tasks happening during build -
validating configuration, setting up paths, creating directories,
preparing the project, getting assets and copying them to ACI staging
directory and creating the ACI image.

2. Customizations interface which is used in the steps builder is
performing. Implementations of this interface should provide specific
bits for the specific build system they handle.

3. Common configuration valid for the builder and its
customizations. Each customization implementation can provide its own
publicly available configuration as well.

iaguis/goaci,iaguis/goaci,appc/goaci,appc/goaci