Pickle and Unpickle theano functions

Added a test case to verify if pickle and unpickle a compiled theano function works.
Passed.
That's not true.  However, only the name reference will be pickled (meaning if the parameters change in the code, you will get the new vales).

But for it to work, you have to use functools.wraps() on the returned function, which will set the attributes pickle needs (mainly \__name__ and \__module__).