Add support for an enforced-const-field type
Rewrite Batbridge support to use enforced-consts

The Batbridge assembly language by convention is written as a four param
op, being (dst a b i). However, for some operations (the conditional
control and halt operations) by convention the dst argument is ignored
because it is meaningless in the context of a single instruction.

The previous implementation of these instructions caused a parameter to
argument count missmatch by using constant fields to zero the dst field.
The introduction of enforced-const-field was intended to allow a
programmer to still form an op with all four operands, and silently
discard the meaningless ones.

Note that this is silent, implicit, undocumented behavior and that the
assembler system should note a parameter to argument count missmatch at
assemble time.