Enable different algorithms to be specified as instantiations of an abstract class
Renamed shell script to run_join.sh
Algorithm code is now a command line parameter to shell script and executable, which then runs the specified algorithm
Bug fix, remove extra send_end statement
Remove pthread.h include from main.cpp and place instead in other files where needed
Minor cleanup to code and Makefile
Merge branch 'algo-abstract-class' into develop

* algo-abstract-class:
  Minor cleanup to code and Makefile
  Remove pthread.h include from main.cpp and place instead in other files where needed
  Bug fix, remove extra send_end statement
  Algorithm code is now a command line parameter to shell script and executable, which then runs the specified algorithm
  Renamed shell script to run_join.sh
  Enable different algorithms to be specified as instantiations of an abstract class