Brand new specfile interface based on python-rpm

There's a RPM patch submitted at
https://bugzilla.redhat.com/show_bug.cgi?id=857653 to allow access
to the %files list. Until this is fixed, we need code to parse the
%files section out of the spec, included.
Adding rpm_file.py
Adding abstract-src.py, datasources for rpms, files etc.

Removing sources, now handled by SourceDataSource
New srpmfile interface
Cleaning up check_base
New mock interface, implementation update.

Several things, notably in srpm.py belongs to Mock and is moved.
Use  use existing rpmlint.txt when --cache.
Some optimoze to avoid multiple mock invocations
Bugfix: rpmbuild_bp installs too many things
Adapt core to new interfaces
Converting generic.py to new interfaces.
Converting java.py to new interfaces, bugfixes

Also fixes #142
Converting cccp to new interfaces.
Converting shell_api to new interfaces.
Converting ruby.py to new interfaces.
Other plugins
review_dirs: adding a test mockup.
name_bug: use startdir for rpm lookup
Splitting out build.py from generic.py (part of #134)

The tests used to build, install, rpmlint etc are the setup
sequence and are not really related to the other tests in
generic.py. Relocate them to new home in build.py
Updating tests for last changes

New implementation is more picky about version-release.
Testfiles added and updated
Relax checks on expanded thins like %__python, which sometime
contains environment setup
Merge branch 'refactor-3' into devel
Moving tests from src/test -> test

Tests are not source, and should not be in the src include path
make_release: update: new -q option, report usage, bugfixes

New option -q to run without tests (e. g., when running as part of
unit tests).
Report branch and tip when making release.
Use 'unittest discover' instead of run-tests.py to create more
condensed output.
Remove temporary files after usage.