Added timeout cancellation to base executor.

 * This uses rospy.Timer which has looked odd under simulation time.
 * Also refactored test action server into separate file.

This closes #17.
Added correct import
Changes for on demand tasks.

Added service for on-demand tasks.

Restructued scheduled executor to separate new and old tasks, with the aim to allow this to be used to recover tasks overridden by on-demand requests.
Demanded tasks are executed. Others are cleared and cancelled.
Removed pre-variables, enlarged handling of preceding constraints
On demand tasks working.

Also added in time and duration types for tasks.

After a demand the scheduler tries to schedule back in the previously scheduled but unexecuted tasks. If this is not successful then these tasks are dropped. If these are successfully scheduled back in then it also tries to schedule back in the task which was interrupted by the demand. If this is not possible only the interrupted task is dropped.

Demands can be interrupted by timeout and by subsequent demanded tasks.
Merge pull request #28 from hawesie/hydro-devel

Timeouts, on demand tasks, scheduler improvements.
Fixed demand tasks when delaying for next execution.

Also added smalls script to summarise the current schedule.
Merge pull request #30 from hawesie/hydro-devel

Fixed demand tasks when delaying for next execution.
Merge branch 'hydro-devel' of https://github.com/strands-project/strands_executive into hydro-devel

Conflicts:
	scheduler/src/scheduler.cpp
	task_executor/scripts/example_task_routine.py

Conflicts solved by mostly using what was upstream
correcting small bug during last merge
getting example task routines to have proper start and ending points
reverting change in scheduler