server: *: added macro arguments to NewBuildFile

This patch adds the ability for macros to be passed as arguments to
NewBuildFile, which will be used as the initial state of macro values.

The API still needs to be updated to actually pass macro values to the
build.

Docker-DCO-1.1-Signed-off-by: Aleksa Sarai <cyphar@cyphar.com> (github: cyphar)
api: *: add API support for macros

This patch adds support to the server and client APIs to support macros.
The URI /build now accepts another argument, 'macros' which is a mapping
of macros which will be passed to the build before executing it. In the
client, this can be accessed by stringing together -D<VAR>=<VALUE>
arguments.

Docker-DCO-1.1-Signed-off-by: Aleksa Sarai <cyphar@cyphar.com> (github: cyphar)