Displaying a list of all the content types
I have done something similar using Views and the Summary option for Contextual filters. 
I added the Content Type as a contextual filter with the following options:



The end result was a view that displays the following, if you have not specified a Content Type in the URL as an argument:



The only issue I found is that I won't display Content Types that have no content.