fix(cellNav): Don't setup when directive not there

The cellNav feature was attaching logic to render containers and grid
cells despite the uiGridCellnav directive not being on the parent grid
component. This was causing exception to be thrown during scroll events.

This change looks for the cellNav controller (which is simply
empty) and bails before attaching logic if the controller is not present.

Also added tests to cover the exceptions that were occuring.

Fixes #2128