Fixes two bugs found via field testing v2.3.9:
- #19 pubmed_fetch_fulltext: garbled abstracts and empty sections for PMC
articles with mixed inline markup. PMC parsing now uses a dedicated
preserveOrder:true fast-xml-parser instance plus a small helpers module,
preserving JATS document order and recovering body text from articles
with mixed <p> + <sec> structure (e.g. PMC4089965).
- #20 fetch_articles / fetch_fulltext: silent empty payload when every
requested ID was invalid. Dropped the early returns; existing set-
difference logic now populates unavailablePmids / unavailablePmcIds
uniformly across mixed and all-invalid inputs.
No breaking changes. PubMed E-utilities parsing unchanged; the ordered
parser is opt-in via a new useOrderedParser flag on NcbiRequestOptions.