This commit adds error checking beyond UndefVarError and fix a number of
Error/Expected related idioms:
- use (EXPECT|ASSERT)_THAT_(ERROR|EXPECTED) instead of errorToBool or boolean operator
- ASSERT when a further check require the check to be successful to give a correct result
Are there any cases where you expet to remove more than one name? If not, I think EXPECT_EQ would be less confusing.