Include setup/teardown in command expansion

Summary:
- Guarantee setup => etc => teardown order on expand commands
- Move expand logic into BuildStep abstraction

Reviewers: vishal

Reviewed By: vishal

Subscribers: wwu

Differential Revision: https://tails.corp.dropbox.com/D66182