Merge pull request #13 from richardw347/master

fix for trajectory action controller so it works with dual motor controller
Allow negative speed values.

There was a copy paste error where we were checking to make sure the speed wasn't set to 0 (meaning maximum speed), even though speed has different meaning when in wheel mode (0 is for stop, negative values for counterclockwise rotation and positive - for clockwise rotation). The slave motor should rotate in the opposite direction (assumes motors are mounted back to back with horns facing in opposite directions).
Acquire lock before manipulating controllers.

Make sure that no two threads can manipulate (start, stop or restart) controllers simultaneously.
Do not modify a controllers list we are iterating over.

It's probably a bad idea to modify a list we are looping over as is the case with meta controller dependencies. List copies everywhere!
added dual motor joint support to the cases where trajectory goal is cancelled, still needs testing on hardware