Protect subsidiary allocations on public bill updates

PUT /bills/{bill_id} in V1 through V4 now returns 422 BillHasSubsidiaryAllocations
when the existing bill has line allocations. The error names the bill and asks
you to edit it in Rillet. Public bill requests cannot include subsidiary splits;
previously even a no-op update removed the split and its intercompany entries.
Bills without subsidiary allocations continue to update normally.