Let builtin types state their runtime shapes
Why
Payload kinds had two sources: the shapes declarations state, and a list of builtin paths in get_block_type_from_typ. Builtins were outside the generic checks, so an annotation could not restate a builtin's kind and an interface could not state it over a builtin implementation.
The declarations of int, float, bigint, string, bool, dict, array and promise in Predef state their shapes, and only tuples and function types are classified structurally. @typeOf("number") type count = int is a restatement, @typeOf("string") type t = int a contradiction, and an interface's @typeOf("number") type t accepts type t = int.
modifiedDiagnostic annotation over a builtin
@typeOf("string") type t = intdiagnostic
modifiedDiagnostic contradicting annotation
@typeOf("symbol") type sym@typeOf("number") type t = sym