Join cache refresh and MapUnit autoscale

1/ Added join cache automatic update when joined table is filtered/altered: 
A filter applied on the join destination (usually a DB table or a csv) now imposes a refresh of the join cache in the source layer(s) such that all join caches are always kept up to date and syncro with the joined database filter.

2/ Corrected MapUnit behaviour accross projections: The sizes set with the option 'MapUnit' now adapt to the canvas projections according to the 'native' unit setting implied by the layer (in units of the layer CRS) and the unit of the rendering canvas CRS (which can be different when on-the-fly CRS transform are used). For instance, a line width set to 1 (degree) in a QGS84 layer will automatically translate to 60*1852m (60 nautical miles equivalent of one degree of latitude) when displayed on a polar stereo canvas. This becomes quite handy to always render identically regardless of the canvas projection.

Could you please review and eventually merge this code into the master?
(PS: i was a newbie to qgis a fortnight ago, so please beware of these first proposals, although intensively tested and (i suppose) in line with the project approach. btw, my compliments to the qgis team for this really nice and powerful product)