SERVER-8292 SERVER-7843 SERVER-7087 Better V8 exceptions

Audit all handling of C++ and JavaScript exceptions in V8 interface code.
Pass C++ exception details back to JavaScript similarly to the way this
is done in the SpiderMonkey interface code.  Format JavaScript exception
reporting output to be more similar to the output generated in SpiderMonkey.
Add code and macros to make argument testing and throwing of JavaScript
exceptions more uniform.  Fix typos in error reporting where the error
names the wrong function.  Mimic error text from SpiderMonkey more closely.