Allow one or more custom marker characters to be defined via
AtlinConfig::$markers instead of being hardcoded to `@`.
- Add `$markers` property to AtlinConfig (defaults to ['@'])
- Build an O(1) marker lookup map (array<string, true>) in Atlin constructor
- Update doParse() to check against the marker map on each line
- Update escape logic to cover all configured markers uniformly
- serialize() now uses the primary marker (first valid entry in markers)
- Add getPrimaryMarker() and getMarkerMap() inspection methods
- Fallback to ['@'] when markers list is empty or invalid