Cache the SiteCollection to avoid redundant recreation

Related to https://bugs.launchpad.net/openquake/+bug/1096915

Previously, in each calculation task we were recomputing the entire SiteCollection. For large geometries, this is very costly and can take seconds to minutes to compute each time. This branch seeks to address this shortcoming by computing the SiteCollection once and caching it in the database.