update beaker.py to use metaprogramming to fix Issue #675.  trap all property get and set attempts on the beaker object and forward them to the notebook namespace (unless they are actual local variables).
partial work for python3
redo python2 support with new approach that avoids replacing module with object
fix ipython3 to work without function calls
sys module not needed anymore
sys not needed in py3 either
cleanup debug prints and leftovers from old approach
Merge pull request #758 from twosigma/spot/675

Fix Issue #675, support direct access to notebook namespace in python without function calls