Generic categorised hazard RFC #1105

This PR is in relation to RFC #1105 for the generic categorical IF.  The changes in the code are as follows:

- added interpolation mode 'constant' - this is to prevent the interpolation of the categorized values as suggested by @assefay 
- new IF for generic categorical hazard on buildings
   -in this IF, buildings will be categorized as "not affected", "low", "medium" and "high" with the attributes values of 0,1,2,3 respectively.
   -added 'mode' to call the interpolation process using constant interpolator
   -added a thin border for better styling this is to show adjacent individual buildings, in the previous its difficult to differentiate individual buildings when they have the same impact categories/values.

- new IF for generic categorical hazard on affected population
   -it works similar to the previous IF on flood and  population (inundated or not inundated).
   -in the detailed statistics on affected  population in low. medium and high hazard is shown in the analysis results
   -changed transparency of the affected population layer to 30% as suggested in #

- both IF has a user configurable options in setting categorical hazard values.
- added 'generic [categorised]' in keywords editor
- aggregation also works as expected

We tested this IF to our own datasets for flooding and landslide available in http://github/essc/inasafe_data_ph and it is working with the current data.

Todo:
- review the current documentation for the generic IF (this should be in a separate ticket in inasafe-docs)

For review:
@maning, @assefay  @timlinux, @akbargumbira