Exception fix to include exceptions in Completion and subsequent JavaScriptException

This change includes the changes from previous pull requests because of where the branch was created.  The fix is actually just the changes related to exception handling.  Completion was modified to carry the exception location, and the thrown JavaScriptException was changed to have a constructor that could carry the InnerException with it so that it was easier to go look at this code when debugging errors in Javascript where the handling of the data, such as Date formats is the actual problem.