first part of refactoring of pattern prepare and compile

currently it's in two different places, it's time to compile them
together and unify it
prepare_pattern moved up in code
move whole part of playing pattern from parse_input_args into prepare_pattern
outsource part of prepare_pattern (fuzzy pattern compile) to external helper
outsource part of prepare_pattern (regexp pattern compile) to external helper
outsource part of prepare_pattern (fnmatch pattern compile) to external helper
comment editorial
simplified conditions to test for empty or magic pattern in prepare_pattern

also rename _parse_input_args__prepare_magic_pattern ->
_prepare_pattern__magic
pylint: disable invalid-msg message for _prepare_pattern__compile_*
reverted condition, than one indent less
pylint: disable 'too-many-branches' for _prepare_pattern__magic