Refactor for error handling and tool honesty

When no targets are provided, it warns the user about the actions being
performed and adds the dependency to *all* targets, even though we know
that's not what we want to do on a final implementation.

When targets are provided, it tells the user the feature isn't
implemented and asks for forgiveness with a sad face (":P") and a
reasonable exit code.