Add narrow_node::create_const(size_t)

This guesses as to the width to use for this constant.  Note that it's
not the best way to go about this (because the guess is always wrong),
but it does sometimes work.  Specifically, it works for the
super-common case where your constant is a RSH offset.
Fix a multi-word CAT bug

Surprise: it turns out that CAT wasn't implemented correctly.  This
shows up as part of the DES code, but I've also implemented a simple
little test case that throws an error.