Add parsing of multibyte characters as entities to Kramdown::Parser::IdmlStory and FolioXml so that the roundtrip validation on Idml and Folio import works.
Refactored existing specs:

* use proper name spacing
* adapted shared spec behaviours to overall class structure
* use require_relative instead of require so that specs can be run standalone and not just via rake
Fixed two compounding errors on subtitle and subtitle tagging imports: 

The markers_file_regex was incorrect for both cases (negative instead of positive lookbehind), and the check on line 433 (!~) had reversed logic. Now there is no difference in marker file naming conventions between the two, and the logic error is reversed.
Updated AdjacentElementMerger to handle :entity elements
Updated RawTextParser to operate on Kramdown::ElementRt instead of plain Element. This gives us better tools to handle parent-child relationships. This also fixes a bug in roundtrip validations for Folio and Idml imports.
Updated Kramdown::Parser::IdmlStory to use Kramdown::ElementRt instead of plain Element for better handling of parent-child relationships, and so that it is compatible with RawTextParser.
Kramdown::Parser::IdmlStory: Changes related to switching from Kramdown::Element to ElementRt:

* reassign @root to instance of ElementRt (kramdown sets it to Element)
* update specs
Add UTF8 validation to text based imports
Automatically sync subtitle_mark_character_positions after subtitle and subtitle tagging imports.
Kramdown::Converter::KramdownRepositext: Override kramdown's `convert_entity` method to encode entities with hex number, not decimal.
Added missing `||` operator in AdjacentElementMerger
Updated Kramdown::PatchElement: reorganized methods, added `#set_classes`
Added spec for Kramdown::Parser::Folio