Rename variables used in the ExcCheck macros to avoid collisions

This PR fixes bugs which are caused for example by a call like this:
```c++
ExcCheckImpl(condition, "Null callback for " + msg[0]);
```
Which would result to:
```c++
std::string msg = ML::format("%s: %s", "Null callback for " + msg[0], "condition");
```
where `msg` is interpreted as the local macro variable (which is now renamed to) `msg__`. This would cause a segfault, because the variable created in the macro hasn't been initialized at that point.