RMSProp implementation modeled off of AdaDelta
Add running averages as members of RMSProp class

This enables us to use them as monitored values.
Reorder things in SGD.setup, so we call learning_rule.get_updates
before learning_rule.add_monitoring_channels.
Also add a little bit of doc.
PEP8 compliancy
Docs + error handling updates
Docs + error handling updates