bugfix: TimeFormats._for_string- no TypeError for invalid strings
add try-hard-option; new concept for Formats-classes

try-hard tries to build a format for every string; undependent of the
formats-class-configuration.

The init-function calls three methods:
- _set_any_formats_for_string:  if string is given and try-hard is true
- _set_allowed_formats_for_string: if string is given
- _set_all: if no string is given (all possible formats)

These three methods calls different get-methods:
- _get_formats_for_string: returns all formats that fits for the string
- _get_all: returns all allowed formats (depending on configuration)

the _set_allowed_formats_for_string checks which string-specific formats
are found in all-possible-formats

the for_string-get_methods also call a method named _analyse.
In this method the string is analysed.
Analysing starts with _eval_ingredients, but is customized for the
specific formats-class.

Mention: the formats-classes don't raise an Error for invalid strings
anymore -instead remain an empty string.