Issue 2169 a_theano_function.free() to free the temp memory

Initial the PR

TODO: 
- [x] Make f.fn.allow_gc accesible with the CVM and allow to change it dynamically by Fred
- [x] check allow_gc, if False, loop over storage_map and set None, __Dont set Constant to None__
- [x] call free() in inner function
- [x] Add free() tests

NEWS.txt:
- Allow to free intermediate memory not freed when allow_gc=False manually: a_theano_fct.free() (Roy Xue)