Path transforms

This PR adds `carbon-path` (open to other name ideas - this felt the clearest) which makes it easier to bridge `carbon-(list|sieve)` output/input with file manipulation utilities such as `rm` or `find`.

I also took the liberty of refactoring the parts of the CLI code I touched, hopefully nothing too controversial :smiley: 

I'm open to expanding this to add CLI-centric tests but none existed previously so I haven't tackled that yet.

Thank you for carbonate!