RMSProp learning rule implementation

The implementation is based heavily on the AdaDelta learning rule.  Tests still needed -- should hopefully be able to get around to that over the course of the next day.  

The motivations and math behind RMSProp are described by Geoffrey Hinton at the lecture slides below: http://www.cs.toronto.edu/~tijmen/csc321/slides/lecture_slides_lec6.pdf.
If the parameter doesn't have a name, your `add_channels_to_monitor` is going to choke with a "can't add string to None"... so either don't append it (and log a warning) or raise an error. I'll leave it up to you which seems more reasonable (not naming a model parameter is probably asking for trouble in more places than just this, so it may be reasonable to error).