Tweaking error handling. 

There was a bug where we weren't handling an ErrorsException that wasn't related to a passed-in Errors object. This Errors approach is good 'cause the messages are good. But it still isn't particularly easy to code against because we need to both pass-in an Errors object and throw an ErrorsException if a return value cannot be computed.

Also changing how error message merging works, so that if we get a problem looking up say, a cached constructor, we use the code that wants that constructor as a source.

git-svn-id: d779f126-a31b-0410-b53b-1d3aecad763e
8 files changed