Refactor build command
This is part of the implementation of submitting builds from stream
branch when run `fedpkg build`. This refactor allows to override
cliClient.build without affecting the scratch-build and chain-build.
In addition to the refactor, tests are also added for command build,
scratch-build and chain-build.
In class cliClient.build, most of the code are moved into
a separate method cliClient._build, where is the right place to add
general code for all of the three build commands.
A global option --dry-run is added and build, scratch-build and
chainbuild could perform a dry run. This new option could also be used
in other commands rather than introducing new one for themselves.
Signed-off-by: Chenxiong Qi <cqi@redhat.com>