#1407: implement cellClass logic
fix iteration in pinning
Updates to ngDoc: GridOptions and ColumnDef in each feature

Included an index.ngdoc for the API, providing an overview of how
to interpret the API.  Moved the majority of the GridOptions and
ColumnDef settings back to the individual features, ngDoc doesn't
provide a way to document in both places.  Some wording tidyup and
standardisation of naming - in particular ColumnDef rather than
ColDef everywhere.
Use renderContainer.renderedColumns in resizer instead of grid.renderedColumns.  remove the virtual scrollbar logic in resizer
remove all references to virtual scrolling because it's not being used or maintained
remove unused code related to renderContainer implementations
fix some for loops that have proven to be an issue
Added selectAllVisibleRows to selection feature

Also extended unit tests to cover this and some other functions.
bugfix(sorting): Fixes #1490. Wrong method call

grid.queueRefresh() calls refreshCanvas(), which doesn't run column/row
processors. grid.refresh() does call those processors and does so
immediately.

These method names are pretty collision-tastic and probably need to be
renamed for clarity and sanity's sake.
bugfix(rendering): Fixes #1448. Bad header calc

Header calculation was never updated after the changed to render
containers. The headers should now be accounted for and viewports and
scrollbars will size correctly based on viewport size.
add colDef.pinnedRight and .pinnedLeft
move creation of left and right render containers to grid so other features can utilize