Added further infrastructure for challenges. Also refactored the XML
parser. Also added an exception to getAnimal() if the animal isn't
found and altered callers' code to handle it appropriately.