Introduce a 'run' method for steps, which simply returns the result

This does away with the complex need to call self.finished or
self.failed
Integration tests for custom buildsteps

This includes updates to fakes and interface tests for them
support catching deferreds from several BuildStep methods when old-style steps call them synchronously

Specifically:
 * addCompleteLog
 * addHTMLLog
 * addURL
add a process Log class hierarchy to interface with steps
update step methods to be async, but still using status API

..so, no data API calls

This contains a hack to allow tests for existing steps that use now-removed
methods to continue to pass, but with warnings.  Those will need to be
fixed in a subsequent commit.

Includes work by: Pierre Tardy <pierre.tardy@intel.com>
docs for rewriting old to new style steps