Handle error the same way for all algorithm types on execution
Currently sequential and autonomous algorithms are not treating errors happening in the process method the same way. This result in missing information coming back up through beat/beat.core>
This patch fixes this and also ensure that the outputs are properly closed.
Fixes beat.core#98 (closed)