Fixes #47: the assembler blocks if given an unbound K.

The assembler tries and merge common constants in K
registers. It used to do that using `==` to compare
different K's, which of course blocked on unbound
values.

This fixes introduces a function `NonBlockingEqEq` that
does not block on its operands (nor touches them in any
way, i.e., does not make them needed). It answers `true`
when it can decide that the two values are equal, and
`false` in other cases.
Merge pull request #49 from sjrd/issue/fix-47

Fixes #47: the assembler blocks if given an unbound K.