Reduce query count

This reduces the number of queries greatly throughout the site.  The first commit use pre-loading.  The following two address more difficult patterns but do add some complexity in the process.