Module for builtin functions with their symbolic execution handler

`type args````=` `{`

`pdesc : InferIR.Procdesc.t;`
`instr : InferIR.Sil.instr;`
`tenv : InferIR.Tenv.t;`
`prop_ : Prop.normal Prop.t;`
`path : Paths.Path.t;`
`ret_id_typ : InferIR.Ident.t * InferIR.Typ.t;`
`args : (InferIR.Exp.t * InferIR.Typ.t) list;`
`proc_name : InferIR.Typ.Procname.t;`
`loc : InferBase.Location.t;`
`exe_env : Exe_env.t;`

`}```
`type ret_typ``= (Prop.normal Prop.t * Paths.Path.t) list```
`type t``= args ‑> ret_typ```
`type registered`````
`val register : InferIR.Typ.Procname.t ‑> t ‑> registered`

Register a builtin `Typ.Procname.t` and symbolic execution handler

`val get : InferIR.Typ.Procname.t ‑> t option`

Get the symbolic execution handler associated to the builtin function name

`val print_and_exit : unit ‑> 'a`

Print the builtin functions and exit