Create PublicApi for core grid, add row visibility logic

Create a PublicApi for core, along with the ngdocs for this.

Add methods to that PublicApi, including grid.refresh,
gridRow.setRowInvisible, gridRow.clearRowInvisible and
gridRow.getRowsVisible.

Create new methods to force grid rows to invisible, and
an event that is fired whenever the rows visible changes.
Merge pull request #1519 from PaulL1/force_invisible

Create PublicApi for core grid, add row visibility logic