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
Probably best to start off with some variation of CRUD for the first scenario. It will cover all of your steps, and ensure basic functionality.

Example to follow: https://github.com/wp-cli/wp-cli/blob/master/features/user-meta.feature#L3

Here's an outline:

1. Add a term to a post, expect success message.
1. Check that the term was actually saved to the post via a `list`
1. Append another term to the post, expect success message.
1. Check that the term was actually saved to the post, and the other one wasn't removed.
1. Forcefully set the post's terms to a new term that hasn't been used before.
1. Check behavior via `list`
1. Remove the remaining term from the post.
1. Check that the post no longer has terms.