Fix #2042 (pinning): Pinning column menu item duplication on resize
Merge pull request #2064 from mathiasdose/Issue#2042

Fix #2042 (pinning): Pinning column menu item duplication on resize
Release v3.0.0-rc.15
Fix pinning column menu item duplication when i18n, update i18n zh-cn.js and zh-tw.js
Compare pinning menu item by name property.
Merge pull request #2068 from cxr29/master

Fix pinning column menu item duplication when i18n, update i18n zh-cn.js and zh-tw.js.
Use local rather than global path bower install

This brings bower handling in line with protractor, and is needed for
those who don't actually have enough admin rights to have a
globally installed bower command. It also means that we can be
sure we get the version of bower we asked for in package.json.
added selectionRowHeaderWidth option
fix(cellNav): Minor fixes and speed improvement
fix(gridUtil): Allow multiple logDebug params

The function was previously only allowing one parameter. Now the args just
get passed straight on to $log.debug
fix(GridRenderContainer): Correct prevScroll*

prevScrollLeft and prevScrollTop were being set improperly in the
adjustScroll* methods. Neither were accounting for the viewport, causing
the value to be too large. Now it only sets the value if the scrollLeft or
scrollTop argument is not provided, and it includes the viewport in the
calculation.

Also minor fixes within cellNav
fix(Filter): Watch running w/o change check

The filter term watches were all firing whether or not there was a change
to the values!
fix(uiGridMenu): Only run applyHide when not shown

applyHide() was running on all GRID_SCROLL events, whether or not the menu
was visible. This was causing excess $digest() loops.
fix(Grid): Avoid too-early header height calc

renderContainers with no canvasWidth were having their heights calculated.
If their columns were wrapping around it would mean too large of a height
on that renderContainer, and thus would be propogated to ALL the other
containers (i.e. pinned containers).
fix(cellNav): Don't lose focus with wrapping nav

When navigating beyond the left/right edges of grid around to the other
side, the grid was losing focus which prevented further navigation because
any keydown events were being sent to <body> (the new activeElement). This
fix causes the renderContainer to be REFOCUSED after a GRID_SCROLL event
in the case that the activeElement is document.body. We are assuming that
when scrolling within the grid, an element within the grid should have
focus.
fix(Edit): Retain "focus" in endEdit()

When hitting the ESC key in a cell while editing it, the cell was losing
focus when it should have been retained. This fix accounts for the changes
to using actual CSS classes instead of relying on :focus.
Move scrollbar bottom to account for viewport adjustments
chore(Site): Use rawgit's CDN for data files

We were pointing straing to rawgit.com instead of cdn.rawgit.com for our
.json files and it was probably throttling. The newer version of our
custom grunt-ngdocs fixes this.
Paging based on ng-grid
fix(uiGrid): Fix race condition in data watcher

The data watch function is creating a condition where promises can get
resolved out of order. If you are fetching both cell templates and data
over the network, it will operate thusly:

1. Data watch fires with empty data array, it sees there's no columns set
up and builds them from the columnDefs. This uses a promise from the
preCompileCellTemplates function.
2. The new data comes in, the data watcher sees there's columns set up now
so nothing has to be done and it sets the rows to your new data. Yay!
3. The promise from preCompileCellTemplates completes, and the data is
updated AGAIN, but this time with the original empty data set, blowing
away the data you fetched.

This fix changes the operation so we only call buildColumnDefsFromData()
when we actually HAVE data to use, and buildColumns() gets called if we
either have data OR have columnDefs.

Fixes #2053