Feature/496 error handling imprvmts

Fixes #496. The documentation has been improved (doc in GoogleDrive), and I have stopped using addError to avoid having the platform roll back the transactions.

This branch also includes a fix for the issue of not being able to save custom payment mappings (DML moved from helper class constructor to action method).