client/shared/software_manager.py: use distro detection API instead

This was a leftover from the original conversion to the distro API.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
frontend/pkgdeps.py: use distro names as returned by distro.detect()

We were using the names provided by the old API (client.utils.get_os_vendor()).

Signed-off-by: Cleber Rosa <crosa@redhat.com>
client/shared/software_manager.py: style changes

Make pylint happier about variable names and other small issues.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
client/shared/distro.py: introduce distro specification class

Used to describe a distribution with requirements such as a mininum
version or given architecture.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
frontend/pkgdeps.py: use distro.Spec to specify packages for Fedora 19

Fedora 19 has package names that differ from older versions, so it's
not possible to keep all under a single package list.

So this makes it more specific with regards to the distro name (fedora)
and minimum version (19) and use this new package list.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
client/shared/software_manager.py: implement software installation by distro spec

Making it possible to use a distro/package map that includes requirements such
as architecture and minimum version and release.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
frontend/pkgdeps.py: Fedora 19 south packages compatible with django 1.4

There's no package of django-south in Fedora 19 that is compatible with
django >= 1.5. So, instead of not having a functional setup with Fedora
19, let's use django 1.4 which is good enough for our needs.

Signed-off-by: Cleber Rosa <crosa@redhat.com>