Use logger.
Use range-based for.
Bundle the chunk source and name together.
Pass a Chunk to Execute() so the name can be set.
Add copy and move ops.
Refactor Execute and RunScript into header.

This is in preparation for being able to customize how we handle return
values.