6ca6649e50
Complete RFC 4918 litmus test suite compliance (basic 16/16, copymove 13/13, props 30/30) by fixing six categories of failures: - PropPatchOp: parse PROPPATCH in document order (RFC 4918 §9.2) so that remove-then-set and set-then-remove yield different results - Null namespace: resolve_name now correctly maps xmlns="" to empty-ns QualifiedName instead of falling through to DAV: namespace - Unicode chars: handle quick-xml 0.39's Event::GeneralRef for character references (𐀀) — the parser emits these as GeneralRef, not Text - MOVE preserves dead props: call rename_resource on MOVE, clearing stale destination data even when source has no registered properties - Malformed PROPFIND: return 400 when body lacks a complete <propfind> element (test 2: bare <foo>, test 3: invalid xmlns:prefix="" binding) - PROPPATCH document order: process ops via Vec<PropPatchOp> instead of separate (sets, removes) to honour interleaved remove/set sequences