Fix try/except syntax for Python 3

"except (IOError, errors):" fails with a TypeError if errors is a tuple on
Python 3, whereas it was accepted in Python 2.

Change-Id: I65cfb60af87e76fdf2d37043fb106adbd4586fb9
Fix test_notifier_logger for Python 3

 * Get the current line at runtime, don't hardcode the line number
 * Only strip last character of the filename if it ends with ".pyc"
   or ".pyo".  On Python 3, import automatically replaces .pyc and
   .pyo with .py.
 * Use threading.current_thread().ident to get the identifier of the
   current thread. The get_ident() function is available in thread
   module in Python 2, but in threading module in Python 3. And on
   Python 3, logging.thread symbol does not exist anymore.

Change-Id: I3f248bb860caafaf38eefcf440d36b9bebc8f05e
Merge "Fix try/except syntax for Python 3"
Merge "Fix test_notifier_logger for Python 3"