text: Title: Only display observed categories in legend
  Body: Hi,
  This is a feature request
  
  **Current behaviour**
  When plotting with a `pd.CategoricalDtype(categories=categories)` column as `hue` or `style`, all the elements in `categories` are displayed in the legend, even the categories that don't appear in the data.
  
  **Desired feature**
  It would be nice to also have the possibility to only display the observed categories in the legend. For example with a new parameter in `FacetGrid.add_legend`:
  ```python
  g.add_legend(observed_only=True)
  ```
  
  **Relevance**
  This would be useful in case you have multiple plots involving the same categories but not all categories observed in each plot. This way, the colours/style would be coherent between the plots, without overcrowding the legends.