[MRG] ENH use specific warning class for RP

This is a followup to the discussion in #3856.

Using a custom warning class will make it possible to use RP for usage not related to dimensionality reduction without issuing a phony warning when we expect the number of components to be larger than the number of features.

An example of such generic usage of RP is LSH.
Do you want me to switch `ConvergenceWarning` to subclass `UserWarning` as well for consistency? I am not sure what the `UserWarning` semantic should be.