Adding new superclass for C ops

This adds a new class (gof.COp) for new C ops to inherit from. It allows to have the C implementation in a different file than the Python implementation and it also takes care of a few C-related methods of the Op class automatically. This pull request also updates the Extending Theano with a C Op tutorial to include an example using this new class.
I explain if in the 3rd paragraph of the "Support Code" section. I didn't put any comment about it in the code because I figured trying to explain it before mentionning how to organize support code in the external C file would be confusing to some people.