Partially make undefined Functions picklable (issue 1198)

The fix, which is described at issue 1198, now makes it possible to pickle 
functions in an interactive session.  For example

In [1]: import pickle

In [2]: pickle.dumps(f) Out[2]: 'c__main__\nf\np0\n.'

However, it does not work in other situations. For example, in a regular 
Python session, it will not work.  If you create a script with

import pickle from sympy import Function pickle.dumps(Function('f'))

it will not work.

However, this *does* fix many issues in SymPy Live, including issue 2600, 
which prevented most examples using undefined Functions from working.

Unfortunately, the tests in test_pickle.py seem to be among the instances 
where this doesn't work.  I don't know how to set up a test situation where 
this does fix the problem.

This fix should be considered a temporary one. We really need to rewrite 
Function so that it doesn't create classes on the fly (see issue 1688).