linecache: Traceback could not be displayed if module_globals is None.
ZODB Components: Display proper traceback and source code if an error occurred on 'exec'.

The initial 'exec' traceback was not passed when raising ImportError (following
PEP-302), thus it displayed traceback in component_package instead of the actual
location of the error. Also, Caching source code retrieved from traceback/(i)pdb
(through get_source()) was done after the actual 'exec', whereas it should have
always been *before* obviously...

Steps to reproduce:
  1/ Create and validate a Test Component A importing another Component B.
  2/ Invalidate Component B or add a typo not handled by pylint (because of exceptions).
ZODB Components: Log error *and* traceback for both Extension and Document Components.
zExceptions: Monkey patch for Zope to display source code in Zope Exceptions tracebacks.