Merges #50 and #9
Zellic Team:
"we recommend that the developer flag all subcircuits that may be expected to panic
during execution. After this, their return values can be modified to include an extra wire that acts as
a flag for input validation. This flag is expected to be 0 to indicate a panic and 1 otherwise. For now,
we refer to this as the isValid flag. This means each affected subcircuit would need to be
expanded with 1) extra validation circuits in each affected subcircuit and 2) one extra output wire
per affected subcircuit."