Split utils.timed into 'timed' context manager and 'timed_function' decorator

Also use timeit.default_timer for time measurements.
Use capsys builtin py.test fixture to check stdout content in timed tests
Collect statistics during projects batch analysis

Add --batch and --force options to runner.py script. The first
one starts batch analysis where subdirectories of the directory
specified will be analysed (each counts as project).

For each of them the file ./reports/${PROJECT_NAME}.json will
be checked first. If it exists its data will be used and further
analysis will be skipped, unless --force option was specified as well.