Vastly reduce the numer of queries needed for the position views

Previously, the position view could use over a 1000 SQL queries
for a single page view; this commit reduces that to about 90 by:

 - Using select_related to include columns from tables that are
   required by the view.

 - Using an 'IN' on parent place IDs and a select_related on the
   PlaceKind to avoid one query per place.

90 queries is still far too many, of course - the chief culprits
are:

 - Queries for individual rows in the thumbnail_kvstore table,
   used by sorl_thumbnail.  The sorl documentation suggests either
   using memcached to cache the results of these queries or
   using redis instead.

 - Queries for alternative person names via the template's use of
   position.person.name.  We can include these with prefetch_related
   when we upgrade to Django 1.4.

 - Queries for all images for a person, via the template's use of
   position.person.primary_image - similarly, prefetch_related will
   help with these.