Fix TypeError in PynagError's __init__ due to Python 2.4

Python 2.4 Exception's are not new-style classes. Therefore, we cannot use
the super(Parent, self) syntax.

This fixes errors in test_invalid_threshold and test_invalid_range

      File "/home/nagios/pynag/pynag/Utils/__init__.py", line 48, in __init__
        super(self.__class__, self).__init__(message, *args,**kwargs)
    TypeError: super() argument 1 must be type, not classobj
Merge pull request #103 from dekimsey/py24-super-exception

Fix TypeError in PynagError's __init__ due to Python 2.4
Parsers.config.apply_template() - fix incorrect parsing when duplicate names exist

If user has incorrectly configured nagios to have multiple objects with the same name, the nagios parser surely will get confused.

However we had a bug where multiple objects with the same name, then all duplicates would get lost because cache dictionary was keyed to the name.
Parsers - Rename shadowed built-ins

Legacy code was using keywords like object and buffer, they have now been renamed
Improve readability of the parsers module
Allow handle relative paths in cfg_dir, cfg_file

When nagios.cfg specifies relative paths in cfg_dir and cfg_files
the previous behavior was to make the path relative to current working directory.

After this change, the paths are relative to the location of nagios.cfg which
hopefully better matches what nagios does.

* Fixes #104
Model - get_suggested_filename  change service templates with host_name

If an object with register=0 and name=X and host_name=X was saved, it would go into
templates directory.

After this patch, services like this are stored with their host, despite being unregistered.
fix paths in nagios.cfg on dataset01
Make doctests in Parsers module travis friendly
ObjectDefinition.attribute_removefield now removes empty attributes

Before if removing the last field from an attribute, it would leave the attribute empty
which in many cases is invalid in nagios.

Now when removing the last attribute, the attribute is also removed.
Model - pep8 cleanup
unittests - Add unit test for object deletion
Merge remote-tracking branch 'upstream/master'
Finished tests for ContactGroup.delete()
Added Contact.delete() and its tests, fixed contactgroup references=> attribute is called contact_groups in most objects!
Extended contact/-group delete tests to include more object types (hosts,contact/-groups) and their respective specialties
Extended Hostgroup.delete() to reflect discussion in https://github.com/pynag/pynag/issues/90
    removed workarounds for icinga issue 3900 as it is now fixed by attribute_removefield()
Added tests for Hostgroup.delete() (with recursive True/False) cleanup_related_items not tested separately
Extended Host.delete() to include cleanup of related escalations and dependencies as well as deletion of the same if recursive=True
- added tests for Host.delete()