scrollTo method completed on cellNav feature

Including unit test extensions, and additions to tutorial 202.
RowEdit feature, row-by-row save to server

Provide a feature, tutorial and unit tests for rowEdit feature.

Seeks to save row-at-a-time, including stopping editing a row
that is currently saving, showing error rows in red, and noticing
when a user is still editing the same row, and not saving until
they move off that row.

Includes three changes in non-row-edit files:

- add beginCellEdit and cancelCellEdit events to the edit feature,
rather than listening to non-public api calls
- modify edit feature to not allow editing of a row that is currently
saving (one line change)
- add a `renderingComplete` event to core, and register that event
immediately the api is instantiated, allowing features and external
users to register for that event in their initialize block.  This
event does the same thing as onRegisterApi, but is multi-user/broadcast,
rather than only accessible to a single module.  (Otherwise if rowEdit
used onRegisterApi it was no longer available to the end-user to use)
bugfix(ColumnResizing): Fixes #1549

Use getBoundingClientRect for the absolute left-positioning of the resize
overlay
Merge pull request #1557 from PaulL1/cellNav_scrollTo_updated_again

scrollTo method completed on cellNav feature
bugfix(Footer): Fixes #1564.

uiGridFooterCell needed to use col.getColClass() to apply the colN class
rather than the repeater $index. It was getting col0 when it needed col1
Fixes #1364

1. IE11's userAgent has changed. Altered gridUtil's detectBrowser() code
to handle this
2. It seems like in order for the IE11 scrollbar to fire usable events the
container holding the scrollbar must be at LEAST 1px bigger than the
scrollbar itself. Add 1px to the scrollbar width/height if the browser is
IE to account for this.
Merge pull request #1571 from PaulL1/row_edit

RowEdit feature, row-by-row save to server
Add feature: exporter.  Provides csv and pdf exporting.  Draft only

Add exporter as a feature, with associated directives.

Provides for CSV export and PDF creation using the pdfMake library.
Includes tutorials and ngdocs.

No UI is currently provided, the tutorial provides an example of
building your own UI.  Ideally this would be added to a grid menu
once that function is available.
Extend the edit feature to support dropdowns

Includes creation of a new tutorial, extension of the old tutorial,
and provision of unit tests.  This request adjusted to use a
separate ui-grid/dropdownEditor template rather than an editType
option
Add upgrade tutorial
Merge pull request #1580 from PaulL1/upgrade_tutorial

Add upgrade tutorial
Merge pull request #1579 from PaulL1/edit_dropdown_no_ngif

Extend the edit feature to support dropdowns
Merge pull request #1578 from PaulL1/exporter_no_button

Add feature: exporter.  Provides csv and pdf exporting.  Draft only
Add useExternalFiltering option and event
Fix(cellNav, tutorial) #1562 remove jquery from tutorial
remove jquery code from cellNav and auto-resizing tutorial
End to end testing framework and tests for most of 100 series tutorials

Provides an e2e test library of helpers for interacting with the grid
and a pattern for applying tests to tutorials.

Also includes upgrade of protractor to 1.0 and associated selenium/
webdriver upgrade.  As such will require `npm update` and potentially
`grunt install` before the tests can be executed with:
  `grunt dev`
Remove debug statements in native-scrollbar directive
Add notes to auto-resize tut
Merge pull request #1587 from PaulL1/e2e_test_tutorials

End to end testing framework and tests for most of 100 series tutorials
Fixes #1559: grid element box-sizing update

Bootstrap makes the default box-sizing of all elements "border-box". This
messes with the grid size calculation so this change forces the grid
element to be box-sizing: content-box