rework logviewer

as per http://trac.buildbot.net/ticket/2982 the old implementation was very slow for big logviewers, because a table with the whole data was loaded.

With this implementation, we play with scrolling position to find out which data to load, and load only necessary data
invisible parts of the log are replaced with padding div, which height is properly calculated

based on https://github.com/Hill30/NGScroller (MIT license)

ui.scroll is a good directive for infinite scrolling. Its inner working makes it not very adapted to viewing log:

This scroll directive uses ui.scroll base, but replace the whole DOM manipulation code
- Can directly scroll to arbitrary position
- Dont remove out-of-sight DOM. Eventually this will result in huge dom, so please make sure to use bind-once childs.
    This however as the advantage on only loading each line once.
- Support line count, and adapt scroll bar appropriately
- Can follow the end of stream, via updating the scroll-position attribute
- row height is fixed (or you cannot make geometric calculation to determine the positions of arbitrary elements)

This directive uses JQuery for DOM manipulation

Note that we loose filtering, which is to hard to make efficient right now.

Signed-off-by: Pierre Tardy <pierre.tardy@intel.com>
fix for 't' logs

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

warnings (20002) -> warnings__20002_ instead of warnings__2___2_

Signed-off-by: Pierre Tardy <pierre.tardy@intel.com>
don't log BuildslaveTooOldError
test failure when buildslave does not have svn installed
make sure self.results is set for getResultSummary
add a test for bug 2974
additional improvements for logviewer

- Add buttons for log download, and full loading
- Greatly improve performance via profiling.
  - disabling ng-animate: 75%
  - minimize the use of $.height(): %15%
- Add loading indicator

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

* Ensure that if secret is present, it is evaluated before any response is given
* Respond `pong` to the `ping` event
* Accept either `application/json` or `application/www--form-urlencoded` content types
Merge pull request #1354 from lukebakken/github-buildbot-tweaks

Enhance github_buildbot.py
more logviewer optimizations

Signed-off-by: Pierre Tardy <pierre.tardy@intel.com>
Small adjustments to docker tutorial.

Add a note about issues with Docker itself, and rephrase the
don't-deploy-this-way warning slightly.

Fixes #2989.
document addLogWith{Failure,Exception}
Merge tardyp/buildbot:identifier (PR #1353)
fix performance bug with chrome

chrome/safari takes exponential time to remove elements with float:left
as proved with:
http://jsfiddle.net/pgueecab/3/

There is no such problem with display: inline-block, which achieve same functionality

Signed-off-by: Pierre Tardy <pierre.tardy@intel.com>
Merge pull request #1357 from djmitche/bug2989

Small adjustments to docker tutorial.
Merge pull request #1361 from djmitche/doc-addlogwith

document addLogWith{Failure,Exception}
Merge pull request #1358 from djmitche/bug3017

Fix up handling of `self.results` for steps
Merge pull request #1359 from djmitche/bug2974

add a test for bug 2974
Merge tardyp/buildbot:logviewer (PR #1347)