GenericSubParser and SubConverter refactoring

* Introduced Subtitle and Header classes instead of atoms.
* Introuduced SubManager class to handle a list of subtitles.
* Introduced SubFormat class which handles the description of subtitle format, parsing its sections
  and converting to it from previously parsed subtitle. It is a base class for format-specific ones
  (e.g. SubRip)
* SubConverterManager has been removed.
* GenericSubParser -> SubParser
* SubParsers -> Formats
* SupParser -> Core
* SubConverter has been moved to Core
* Parsing and converting are now separated from each other.
* It is now SubManager responsibility to handle subtitles without an end time.
* It is now SubConverter responsibility to handle subtitle converting.
* It is now SubParser responsibility to iterate available formats and parse a correct one. Formats
  that should be available to SubParser should be registered first.
Provided a generic SubFormat.formatSub method

It can be used for several subtitle formats but there are some circumstances when a specialized
formatSub should be provided.