Added a CommandWithTerm Class

Added new CommandWithTerm Class similar to the CommandWithMeta Class.
Designed to reusable for different object types. Currently this is draft and I am still testing it. Just wonder if I was on the right track with this solution. Feedback is requested. I will write tests when I know that I am on the right track. 

Related #1379
In all cases, let's actually use the `WP_Error` in the message when there is one. You can pass the `WP_Error` object directly to `WP_CLI::error()`