This patch makes it easier for users when they want to use validated
lookup on DenseMap/StringMap as a composable C++ expression. For
instance:
// instead of
if (auto val = map.lookup(key))
return val;
assert("...");
// we can write
return map.at(key);
Just a question: would it be better to return const ValueT & like std::map::at would? Do we also want a non-const version of this?