This rather large update adds the following
- A golang build container used for building golang executables and/or
  containers.
- envoyd, a daemon process that creates and updates the envoy config
  file based on consul's KV store and forces envoy to reload the config
  as it changes.
- Dockerfile(s) and compose files that integrate envoy into the NBI call
  chain to load-balance device-to-core assignment.
- Several developer tools that help build and replace specific
  containers in a running cluster. This allows the build process to be
  separated from the run-time as it will be in production.
- NOTES: A command line needs to be added to envoyd because now the
  values are declared at the start of the file. This will be submitted
  in a subsequent commit along with a change toward a more object
  oriented implementation.

Addressed reviewer comments.
Addressed even more reviewr comments.
Change-Id: Ia2ec825d48d475398e501f396452fb0306673432
diff --git a/docker/Dockerfile.golang b/docker/Dockerfile.golang
new file mode 100644
index 0000000..1673daa
--- /dev/null
+++ b/docker/Dockerfile.golang
@@ -0,0 +1,43 @@
+FROM golang:latest
+MAINTAINER Alex Peters <info@alexanderpeters.de>
+
+RUN apt-get update && apt-get install -y apt-transport-https ca-certificates jq
+
+RUN echo "deb https://apt.dockerproject.org/repo debian-jessie main" > /etc/apt/sources.list.d/docker.list
+RUN apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
+
+RUN apt-get update && apt-cache policy docker-engine && apt-get install -y upx-ucl docker-engine && apt-get clean
+
+RUN go get github.com/pwaller/goupx \
+	&& go get golang.org/x/tools/cmd/cover \
+    && go get -u github.com/golang/lint/golint \
+    && go get github.com/kisielk/errcheck \
+    && go get github.com/cespare/prettybench \
+    && go get github.com/uber/go-torch
+
+# Install dependency management tools
+# gpm
+RUN wget https://raw.githubusercontent.com/pote/gpm/v1.3.2/bin/gpm -O /usr/local/bin/gpm && \
+  chmod +x /usr/local/bin/gpm
+
+# glide
+ENV glide_version=v0.12.3
+RUN mkdir -p bin ; \
+    curl -L  https://github.com/Masterminds/glide/releases/download/${glide_version}/glide-${glide_version}-linux-amd64.tar.gz | \
+    tar -xz -C bin ; \
+  	mv bin/linux-amd64/glide bin/glide; \
+    rm -rf bin/linux-amd64
+
+
+ARG GITHUB_TOKEN
+RUN echo "machine github.com login $GITHUB_TOKEN" >/root/.netrc
+
+COPY build_environment.sh /
+COPY build.sh /
+
+VOLUME /src
+WORKDIR /src
+
+ENV GORACE="halt_on_error=1"
+
+ENTRYPOINT ["/build.sh"]