Replace sourceCmd with a much safer sourceCmdWithConsumer.

Also update the tests while we're at it.
Merge pull request #162 from erikd/process

Replace sourceCmd with a much safer sourceCmdWithConsumer.