Hypertree Decompositions: A Survey