This commit implements command backup and snapshot.
This commit cleans up the distillery code by making each component a distinct struct. Each of these components is also returned by by a new Component() function that replaces the Stacks() function.
This commit moves a huge chunk of the code to go. The TODO.md document indicates what is left to be done.