WIP: Return Result Object

I was toying with the idea of return a `Result` object from the `Workflow` which could provide more information on what happened in the import. 

My motivation for this was that after one file finished importing, If it had any errors I want to move it to a failed folder, for someone to check later, or moving to an archive folder if successful. 

What do you guys think to this idea? 
Is there anything else we could add to it? I was thinking actually putting the errors in the `Result` object, but this could cause memory issues if there are lots of errors. 

If this is something you guys would consider, I'll write some tests and documentation for it 

PS. Not tested at all - I wanted to get a reaction first.
Perhaps it’s better to collect the exceptions instead of the messages. That way, a user can implement custom exceptions that contain extra data, and pull that data from the exceptions when reading the Result.