Ignore mode argument, which is used by naginator
Allow services that don't have a host_name

This happens in the case where you have a generic definition of a
service that is inherited by real services using the 'use' variable.
Specifically only allow valid directives

This is a directive white list.  Since Nagios doesn't change much it
should be fine to hard code this stuff.
Allow composition of facts when grouping

This is primarily to allow groupings like:

  {operatingsystem}_{operatingsystemrelease}
Make ext_naginator classy

Due to an increasing of arguments to some functions, I think it was
inevitable that the main parser become a class.
Write out hostgroup and servicegroup names
Generate dynamic hostgroups with value as hostgroup_name

This behaviour was changed after I realised that new dynamic hostgroups
were being generated with incorrect values.

Now for example with the host group of "{operatingsystem}" the hostgroup
name could be "Ubuntu" instead of "{operatingsystem}_Ubuntu"

This extra scoping should be brought back in once I have a better custom
host group definition configuration file.
Make nodefacts an instance attribute
Hostgroups are now configured by a config file
Support abstract hosts

These are hosts that don't have an address because they are inherited by
other hosts using the use keyword.
Support abstract services

These are services that are inherited by other services using the use
keyword.
Make hostgroup section of configuration more explicit
Added simple filtering

This will allow users to specify an environment of perhaps filter hosts
by a specific value.
Only print host group members if they exist

Some of the hosts for one reason or another may not have nagios host
annotations.  These hosts shouldn't appear in the host group.
Added support for contacts, contactgroups and timeperiods
PEP8 fix
Convert Nagios host over to class
PEP8
Removed workstation code

I really need a better understanding of what this is doing, but it
probably can be skipped by using a better query.
Remove duplicate hostgroup from the name

Because hostgroup_ is now included as part of the config file section,
it's no longer needed here.