Merge branch 'release-1.4.2' into develop
General cleanup before implementing tests.

 * Removing boilerplate test setup.
 * Removing unnecessary beautification options.
 * Removing test tasks for RPM generation:
     This task is not platorm independent nor does it have any associated
     test cases or acceptance criteria.  It appears to have originally
     been used for manual testing.
Added tag validation.

A suite of validations for RPM tags was added accompanied by relevant
tests.  The validation suite rules were extracted from the RPM
specifications for spec files as well as a bit of common sense.  Further
spec validations should be added as more tags (and other sections) are
added.
Removing clean package.

This package isn't being used since the tests no longer build out any
files.  Once full system testing is added, it will likely need to be
added back to the project for easy cleanup in tasks.
Removing bump package.

This is a bit of an opinionated change but it is nicer to prepare a
release with the version bumped in a separate branch then tag it after
being merged into master.  Otherwise we have a separate commit for the
bump after the merge occurred even though the release was prepared.
Added spec writer.

The beginnings of a spec file writer are added accompanied by some
relevant tests.  The writer mimicks what Panit has already done with a
simple line buffer.  This implementation exposes the buffer as an object
with various methods so that it may be extended and modified more
easily.
Changed tag Copyright -> License. Added Epoch tag.

This is to bring the spec file up to date with the reported errors in
rpmlint 1.6.
Split AutoReqProv into AutoReq and AutoProv tags.

The documentation shows that three tags for automatic processing exist:
AutoReqProv, AutoReq, and AutoProv.  AutoReqProv sets both AutoReq and
AutoProv with its value.  Thus, the spec now has two tags: autoReq and
autoProv.  When both of these are false, the AutoReqProv tag is used.
Otherwise, the individual tags are used if only one is false.
Added URL tag support.
Added architecture related tags.
Added OS related tags.
Made ensureEmptyLine chainable.
Added Prefix and BuildRoot tags.
Added (No)Source related tags.
Added (No)Patch related tags.
Code formatting to match project style.
Correct spec for buildroot and newline.
Added build-time related scripts.
Refactor spec-writer tests.
Added install-time related scripts.