Simplify uniquify() method

idfun only introduced overhead and it generated Pylint errors
Standardize how to create subprocesses

Entire code should use subprocess_sp, subprocess_call() and subprocess_get()
instead of subprocess module directly
Remove dead block that checks for Ubuntu distro

This elif will never be reached.
Introduce get_family() to remove distro test redundancy
Fix Pylint errors in tftpd.py

* Create dummy fileno() in RenderedFile class
* Fix socket reference
* Remove wrong local_sock import
Add remove() method to base collection class

Pylint complains if the method is not defined in base class
Initialize variables used in item classes
Handle OS version properly
Fix get_kickstart_templates() call
Add get_fields() abstract method in item.py

As item class uses get_fields(), it should define an abstract method which raises
an exception, this will detect errors more easily if an item subclass does not define
the method.

Currently, method is already defined in all item subclasses, so no further change
is required.
Create a method to get Python module name

Before, one single method was used to get module name and to get module itself,
based on an input parameter. New code organization makes code simpler to
understand and fixes Pylint error.
Do not return from __init__()
Replace wrong recursive calls in some get_* methods with get_item()
Delete debuginator script

This script has a very specific purpose of automatically creating empty initrd/kernel
files for all existing distros, but script is broken (it reads distros in old YAML format
instead of newer JSON one).

Test scripts already create fake initrd/kernel files when needed. I do not see other
use cases of this script. The fact that it is broken for a long time is one signal
that this is not needed anymore.
Raise exceptions instead of returning False when unable to connect to Mongo DB

This makes deserialize() functions always return the same type
and fixes a Pylint error.
Fix utils.die() calls
Remove unused code in cobblerd.py
Fix random_mac() call in koan/app.py
Split find_vm() in find_vm() and get_vms()

This avoids that find_vm() returns different types depending on
parameters values, which makes code easier to understand and
removes Pylint errors.
Fix return values in copyfile, linkfile and cachefile