Code cleanup to avoid triggering a bug in XML::LibXML

The code in IPAM.pm:_process_host_node() that sets the DNS attribute
of a Host object used the result of the XML::LibXML::Node::find()
method, which is a XML::LibXML::NodeList object, as a boolean value.
This triggered a bug in the XML destructor when the IPAM object was
released at the end of a script.  Storing the NodeList object was
dubious anyway, so the obvious fix is to generate a simple boolean
value when calling the Host::dns() method.

This commit also includes two minor modifications:

The install.perl target in Makefile now uses $(INSTALL_DIR) correctly.

IPAM.pm switched from Data::Serializer to Data::Serializer::Raw to
generate a smaller cache file and speed up processing.