Biblatex and optional lot and lol
Using biblatex/biber instead of natbib/bibtex
List of Tables only inserted when necessary
List of Listings only inserted when necessary