Swapping local reports in ReportViewer

This post is about some of the problems I ran into when I wanted one instance of a ReportViewer control hosted on a web page to render more than one type of report dynamically where the decision about which report to host came from a user selection, a filter or possibly some other method available [...]