Update docs and pull out some logic from tron.api.www

Resolves #175

* ActionRun now longer raises an error when start() is called from an invalid state, it just returns false (which matches the behaviour of other `start()` actions in Tron.
* adding unit tests for the controllers