Major refactor: use Shell Result to get stderr, stdout, and status. Tests.