define/2: convert an atom to an integer

Remove define/3. Figure out the function to call based on the name of
the flag.

The behaviour of this function is to crash if passed an unknown
constant. There are 2 ways it can crash:

* name is not matched in case state
* if the port returns badarg

Either way the process will crash followed by the port.

Possibly define/2 should return a value, like 'false' or {badarg,
atom()} (in which case, the process will probably crash anyway when it
attempts to pass the value to another function.)

Alternatively, define/2 could ignore unknown atoms but this could become
a source of creeping errors.

When a C compiler comes across an unknown constant, the compilation
fails. Since we are evaluating the constant at runtime, we should crash.