sse: add possibility to control existing connection

unit test, doc and coherency with websocket api

Signed-off-by: Pierre Tardy <pierre.tardy@intel.com>
fix validate on osx
remove spurious print
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
Merge branch 'sse' of git://github.com/tardyp/buildbot into nine
fixes from review
bring back step statistics
Merge branch '9/async-steps' into nine
Buildrequest data api implementation

Updates:
- Add buildrequest data api (including documentation, unit tests,
fakedb and fakedata)
- Change buildrequest db api 'mine' parameter to 'claimed_by_masterid'
- Minor fixes and factorization in FakeBuildRequestsComponent

Signed-off-by: Olivier Monnier <olivier.monnier@intel.com>
Data API: add filter options to buildrequest collection endpoints

Updates:
- adding filters to the BuildRequestsEndpoint.get() method
- replacing claimed='mine' option in buildrequest DB API, with
claimed=<master id>

Signed-off-by: Olivier Monnier <olivier.monnier@intel.com>
Minor fixes in developer doc

Also enabling todos display in sphinx configuration

Signed-off-by: Olivier Monnier <olivier.monnier@intel.com>
fix common/validate's mktemp invocation
pep8/pylint fixes
fix lodash.js symlink for lodash-2.4.1
event enhancements

This adds more coherency between the event system and the data system, so that
the events are more coherent with the rest api.
Eventually, the goal is that the events are always the same structure as the data for a same resource

This simplifies a lot the system, and make the client much more easy
This comes at a efficieny price. With this design, events will contain more data.

messages are anyway very small, and probably negligible compared to the network load of logs, and slave communication

Signed-off-by: Pierre Tardy <pierre.tardy@intel.com>