More robust handling of USE_EXTERNAL_PUGIXML
Find its components properly, actually link against it.
Use env variable PUGIXML_HOME, if set, as a hint to find it.
Allow it to be set from the Makefile wrapper.