Fixed bug intoduced in d0568fc (replace merge calls)

In d0568fc internal 'merge()' calls in TableSpec_cnf internals were
replaced by simple hash assignments, which was done to avoid situations
where deep structures were combined in undesired ways. However, this
wasn't entirely working because of ordering and possibly referant
updating issues. This commit reworks the new code a bit to address that
problem.