ResourceBuff improvements and better error handling.

* added eps arg to ResourceBuff::PopQty - default val is zero (we make no
  presumptions)

* ResourceBuff re-zeros qty_ member if all resources have been popped - to
  better deal with floating point issues.

* better error messages for ResourceBuff exceptions

* try-catch around RunSim to avoid core dumps when exceptions are thrown
I thought that the style guide said that we can't use default values?  Don't you have to explicitly overload the function?