Primarily updating CLI to support V2

V2 image cli operations build help text based on the jsonschema.
Supporting this as cleanly as possible required quite a bit of
refactoring, making this a larger commit than might otherwise be
expected.

This also allowed for more and deeper testing, so there are a lot
of new and rewritten tests as well.

Change-Id: I24aed0863689f85898b4bf0b68472a8356280fe2