Make Cartfile optional if Cartfile.private exists

Fixes #254 
@robb Nonetheless, my point remains that `ColdSignal` is a strictly more powerful abstraction than `Result`. I don't think it's good or bad—they're just different levels of abstraction. In this case, since we're starting to talk about error _recovery_ and more complicated things, I think we should lift to the higher level of abstraction and do things there.

In general, this is making me realize that we probably need better conventions for when to use `Result` vs. `ColdSignal`. I don't have those right now, but I'll think about what good guidelines might be.