feat(uiGridRow): Allow dynamic row templates

The uiGridRow directive will now watch the row's compiledElementFn
property. If it changes the grid will recompile the element and swap it
out. This appears to function pretty darn quickly during vertical
scrolling.

Also added unit tests to cover swapping templates using rows processors.
fix(uiGridRow): Fix memory leak

Bindings were being attached to the uiGridRow scope but never removed
because the scope was not being destroyed even though child elements were
being added. This was fixed by creating new scopes for uiGridRow when
compiled/re-compiled.

Also, added an element-based `$destroy` handler for ui-grid-cell. It
already had one for the $scope.
Merge branch 'feat-row-templates'