Application error messages that are friendly and detailed

@DavidEGrayson have you seen error-chain work? It should definitely help with, well, chaining errors on different layers. Not sure about message formatting though.