[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 Name Job ID Coverage
  Build
passed build_linux_36 #201609
docker

00:02:57

73.0%
passed build_linux_37 #201610
docker

00:02:54

73.0%
passed build_macosx_36 #201607
macosx

00:02:49

73.0%
passed build_macosx_37 #201608
macosx

00:02:45

73.0%