Check that module imported is the same as the current one

This is quick workaround for infinite recursion in some pathological cases
(e.g. package named as module in the same directory).
Option 'output' default value is string '-'

Argparse requires default values to be of 'str' (which is different in
Python 2 and Python 3) for type action to be applied. It's necessary
for FileType options default value '-'.
Exclude 'cls' param from classmethods, collect additional statistics
Clean up and update messages printed
Module name is resolved once in SourceModuleIndexer
Add tests for unusual recursive import cases