Refactor test project

* Moved the test stage into the test_project_1 directory.
* Added package5 for dependency version checking. package5 has one out-of-date
  dependency requirement.
* Updated the md5sum in package4.
util.py: Add compare_versions()
util.py: Add version_from_pacman()
repo.py: Disable repo() and tests

This will have to be re-written for the new package object handling.
Delete pkgbuild.py

These functions have been merged into package.py.
tests/util.py: Update for new test project path
Disable app.py tests

It will need to be re-written due to the new package object system.
Refactor config.py

* Change sys.exits into exceptions.
* Refactor tests
* Add test_load_configuration_from_bad_path()
* Add test_load_configuration_bad_config_data()
Refactor check_for_existing_packages()

* Add package_list argument.
* Refactor test.
app.py: Change get_list to list_init
Refactor package.py

The entire package object system has been modified:

* Improved locating packages locally.
* Added support for versioned dependencies.
* Added support for locating dependencies on the AUR.
* Added support for reading .PKGINFO in package binaries.
* Changed all lists in Package() to tuples.
* Changed arguments to Package() and improved argument handling.
* Add new_package_from_name() to locate a package and return a package object.
* Merged in functions from deleted pkgbuild.py
* Greatly improved testing.