[tests] add pickle tests for Grids and VectorArrays
[core] make uids classes to control pickling

UIDProvider is replaced with an UID class used to store the uid. This
way we can ensure that an unpickled class recieves a new uid. Otherwise,
there could be two instances alive with the same uid, which should never
happen.
[core.logger] add custom DummyLogger class to enable pickling
[core] do not set instance logger attribute when enabling logging

otherwise all loggers would have to be made picklable
[grids] make SubGrid picklable
[tests] remove mostly useless pickling test in favour per-interface tests
[core] move pickle imports to pymor.core.pickle module
[core.pickle] add methods for pickling function objects
[functions.basic] make GenericFunction in more cases picklable
[test] add tests for Functions
[core.cache] fix pickle imports
[tests] use generic picklability test
[test] move test form functions.py to function.py
[analyticalproblems] correct default arguments of InstationaryAdvectionProblem
[core.pickle] also pickle function dicts
[test] remove obsolete import
[parameters] add 'sid' property to ParameterType
[core] rename 'init_arguments' -> '_init_arguments'
[core] allow ' __init__' methods with varargs in BasicInterface subclasses
[core] add '_init_defaults' to BasicInterface