Handle vanilla Boolean and Integer extension types in Kiasan boolean and
integer extensions, respectively. Kiasan integer z3 binding simplified
to remove literal exp handler since the extension never produces path
condition with literal exp.
Reworked state classes so they use companion object apply instead of
constructor with default values (to prevent mistakes when creating
instances through constructors by forgetting to supply some parameters).
Bug fixes: (1) Inconsistency check is done before checking states that
violate assertions, and (2) Switched end state and assertion violation
state reporting.