[execution][algorithm] Handle error the same way for all algorithm types

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
4 jobs for streamline_algorithm_process_error_handling in 2 minutes and 57 seconds (queued for 6 seconds)
Status Job ID Name Coverage
  Build
passed #201609
docker
build_linux_36

00:02:57

73.0%
passed #201610
docker
build_linux_37

00:02:54

73.0%
passed #201607
macosx
build_macosx_36

00:02:49

73.0%
passed #201608
macosx
build_macosx_37

00:02:45

73.0%