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).
Merge pull request #2114 from asmeurer/pickle

Partially make undefined Functions picklable (issue 1198)