Escape docker output
Summary:
This adds a new DockerInstruction interface that can be implmented by
different docker instructions. DockerInstruction implements a compile
method that returns escaped output for use in a dockerfile.
Fixes T167999
Reviewers: dduvall, mmodell, Release-Engineering-Team
Reviewed By: dduvall, Release-Engineering-Team
Tags: Release-Engineering-Team
Maniphest Tasks: T167999
Differential Revision: https://phabricator.wikimedia.org/D705