bug fix sourcing setup.sh does not return error when parsing of .rosinstall failed.

Generated shell code could be prettier by having large if else blocks to handle error,
since we cannot properly exit a sourced setup file without terminating the terminal
code style: single string template
code style

extract common header, do not assume which tool generated the file
code style dict for string template
fix #57 ROS_WORKSPACE unset for rosbuild workspace overlaying groovy workspace
Merge pull request #58 from tkruse/fail_setupsh

Two fixes to generated setup.sh, mainly around #57