Fixed monitoring_costs documentation in sgd.__init__.

Monitor.setup now checks for type of extra_costs.
This is something that I wanted some feedback/suggestions on. Monitor.setup does a bunch of things after incorporating the monitoring_costs --> extra_costs into its costs dictionary. I think that most of these things won't work on a generic Cost object (cost.get_data_specs(model) raises a NotImplementedError, which is what I'm currently excepting). This seems like a bad test currently.

If I'm just trying to test whether Monitor.setup can incorporate the extra_costs into its costs dictionary (which happens at the beginning of setup), is there a nice way of doing this without having to account for all of the other things that happens later in Monitor.setup?

Should I write the test to go through the whole setup method with extra_costs?