Adds scheduler functionality to executive framework.

This pull request adds in @mudrole1's scheduler to the strands_executive framework. There is now a task executor which uses it to schedule the tasks provided to it. However, due to a bug in the scheduler this has not been tested under all possible conditions, but will work for the some basic cases. The scheduler depends on scipoptsuite which I have added as a package and an external cmake module, but it's a bit of a cow to build and we may see problems with this later. I have tested this on OSX and linux so it seems to work as it stands.