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>
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>
more logviewer optimizations

Signed-off-by: Pierre Tardy <pierre.tardy@intel.com>
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 tardyp/buildbot:logviewer (PR #1347)