refactored "parseMarkup" logic

Renamed "parseMarkup" to "processMarkup", since it did more than just
parse.
Renamed "parseMarkupCore" to "parseMarkup" since that really did just
parse.
Exposed "parseMarkup" as public as well to make it overridable.
Updated the unit tests to reflect this and test the new public
"parseMarkup" overriding logic