[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.
> Should this inherit from UserWarning for backwards compatibility?

:+1:. Good catch