Change ESPError API to support ESPError(string message)

ESPError was supposed to be invoked with a boolean argument 'log' and
return an exception class (either ESPError_Log or ESPError_NoLog), as
in: `raise ESPError(False), 'message'`

But this is a counterintuitive API, and there are places in the code
that try to use it with a string argument, as in: `raise ESPError('message')`

This fails to do the right thing. This second usage is more consistent
with other exception classes, so it should become the default.

This commit changes ESPError to allow the second usage, while still
supporting the first usage if ESPError receives a null or boolean
argument for backward compatibility.