Make the amended lab report the current result (DEC20), and fix the projection that never carried a value

DEC20 settles which row of an amendment chain a clinician reads: the amended
row is the current result, and the signed original is history. Implemented as a
derived fact rather than a stored one -- a report with a child pointing back at
it via supersedes_report_id is superseded -- because
test_amending_a_final_report_leaves_the_signed_original_untouched pins a signed
report byte-for-byte *including its status*, and writing `superseded` into that
row would break the invariant the amend path exists to protect.

- LabReport: supersededBy() (eager HasOne), isSuperseded()/isCurrent(),
  scopeCurrent()/scopeSuperseded(), FILTER_SUPERSEDED (a view tab, not a
  status), canAmend() = final|amended AND current.
- amendReport() accepts `amended`, so a correction can be corrected in turn,
  and refuses a superseded row by naming the amendment to amend instead -- the
  chain cannot fork into two corrections of one original.
- awaitingAuthorization() filters final/amended to ->current(); a Superseded
  tab holds the history. Measured on the running app: after amending, Finalised
  reads (0) and Superseded reads (1).
- An amendment re-projects its value onto `results`, which is what C08's
  worklist, the escalation sweep and decision support actually read. Review
  state is deliberately untouched (DEC06 governance); the change is audited
  with before and after.

Implementing that found a defect the previous revision could not have seen: the
Result projection of an authorised report has never carried a value.
createResultRecord() has always written result_type, effective_value,
effective_unit and both reference bounds -- and none of those five columns
existed. They were also missing from Result::$fillable, so mass assignment
discarded them before they reached the database, SQLite was never asked for a
column it did not have, and no error was raised. Every assertion stayed green
while the projected row carried a status, a source, a patient and no
measurement. Two more defects lived in the same method: `status` was written as
the literal 'preliminary' (matching no tab, so no screen listed it -- now
STATUS_PENDING_REVIEW), and the duplicate check was tenant-wide, so the second
report authorised anywhere found the first one's Result and produced none of its
own (now scoped to order_id + result_type).

The migration and the $fillable entry are one fix; removing either half
reproduces the silence.

Also fixes the only view in the application wrapping Blade in single quotes, so
the browser tab on a report page read raw {{ $report->statusLabel() }}.

LabReportAuthorisationTest: 19 tests, 193 assertions (was 14/138).
Full suite: 676 tests, 2850 assertions, 1 pre-existing skip.
Evidence: outputs/feature-evidence/D30-lab-report-authorise-amend/rev-20261015-002/
