P-Chain state is currently brittle and assumes perfect usage of the API. This issue is to add defensive checks against API misuse so that errors surface when running a bad tx to improve debuggability and make the invariants a part of the state public contract.