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.
* Unit tests for the controllers will be coming in a later branch, they are still covered by integration tests