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.
Wrapping this in a shared variable would make this more useful. As-is, it will be compiled into the Theano graph as constants. Putting it in a shared variable would let you adjust the decay value during training.