Adding ability to capture auto screenshots on demand

**Description**

Using the steps:

    Given I enable auto screenshots
    Given I disable auto screenshots

You can turn on capturing of screenshots and turn it off. They will be saved to directory:

    {TEST_ROOT}/log/auto_screenshots

This directory is not tracked by git.

Each screenshot will be named with the following name:

    {scenario number}__{step number}__{step function name}__{"before"|"after"}

Upon subsequent launches of a test, if screenshots are enabled, new screenshots will overwrite the old screenshots.

Also you can use the function

    world.capture_screenshot(image_name)

anywhere you want, without turning on auto screenshots for the step.

Also you can use the decorator

    @capture_screenshot_before_after

to add screenshot before and after a function execution (it can be any function, not just a step function).

**Reviewers**

- @polesye 
- @auraz