Added a cache on the GSIMs for the probabilities of no exceedence in the classical calculator

This helps a lot for complex logic trees where the same sources are recomputed with the same GSIM several times. An example is the SHARE computation of FMGlobal with 1280 realizations. Here are the times on gemsun02 with 3 sites (speedup of 66x):
```
    -- without the cache
   description 	job_type 	calculation_id 	hazard_calculation_id 	stop_time 	status 	num_sites 	num_sources 	disk_space_mb 	duration
   SHARE ASC [Area Source Model (23/01/2013)] 	hazard 	51 	None 	2014-05-04T17:10:31 	complete 	None 	None 	38 	8:15:52

   operation 	tot_duration 	pymemory 	counts
   total compute_hazard_curves 	237,575 	23 	65
   computing poes 	211,822 	None 	65
   execute 	28,869 	85 	1
   making contexts 	25,110 	None 	65
   total hazard_curves_to_hazard_map 	1,474 	0.027 	15360
   save_hazard_curves 	365 	0.000 	1
   initialize_sources 	62 	71 	1
   generating ruptures 	32 	None 	65
   filtering ruptures 	27 	None 	65
   task_completed 	23 	0.129 	65

    -- with the cache
   description 	job_type 	calculation_id 	hazard_calculation_id 	stop_time 	status 	num_sites 	num_sources 	disk_space_mb 	duration
   SHARE ASC [Area Source Model (23/01/2013)] 	hazard 	50 	None 	2014-05-04T08:44:51 	complete 	None 	None 	40 	0:22:06

   operation 	tot_duration 	pymemory 	counts
   total compute_hazard_curves 	3,606 	22 	65
   total hazard_curves_to_hazard_map 	1,477 	0.027 	15360
   computing poes 	705 	None 	65
   execute 	478 	85 	1
   save_hazard_curves 	381 	0.121 	1
   making contexts 	128 	None 	65
   initialize_sources 	61 	70 	1
   filtering ruptures 	36 	None 	65
   generating ruptures 	30 	None 	65
   task_completed 	20 	0.176 	65
```
The tests are green: https://ci.openquake.org/job/zdevel_oq-engine/379