make opt/c contract follow the blame-add-context protocol
more fixes for recent datastructure change

(I should really use TR here...)