Custom messages on the error object

The main goal of this pull request is to add the custom message to the error object so that it can be referenced without doing string manipulation on the error message itself (splitting at the pipe).

I also did some doc fixing and whatnot