Report a failure more sensibly.

This error could be caused by a mismatch between C code and the TESLA manifest, which *could* be caused by user rather than programmer error. Provide more meaningful feedback if it occurs.
Work around a libstdc++ bug (?).

As pointed out by David in another context, it seems that std::map::operator[] doesn't always do the same thing as std::map::insert(): when using libstdc++ on my Mac, the map would claim to grow by one element but the new element wouldn't be visible to iterators or find()!

This workaround seems to make things behave better.