Feature: Implement Dockerfile Macro Substitution

This pull request implements #5584 -- Macro Substitution in Dockerfiles. In their current state, creating dynamic Dockerfile configurations requires external tools (which all have certain drawbacks, such as loss of context). It would, in my opinion, greatly improve the power of Dockerfiles by adding a standard method of creating dynamic Dockerfiles.

/cc @shykes
/cc @vieux
/cc @jamtur01