Refactor uiGridController to move refresh and other methods to grid

Refactor as discussed with @swalters.

Providing this for comment and review, as it's a big change, and I'm not fully qualified to test it, so not expecting it to necessarily be merged as is.  At the current time I note the unit tests pass, and really it was just moving code from one place to another, so it should work.  I've also put it into my application and used it there, and it seems to work (I'm assuming if these changes were broken it'd be very very visible).

Commit comment:
All unit tests pass.  Need to modify buildStyles to not take $scope,
I couldn't find any styleComputations that actually used it, and it
appeared that all had access to uiGridCtrl, which is the same thing
that the scope would have provided.  Some risk there.

I was unable to register the public api, I suspect that is because
the api doesn't exist without a callback, so I needed to write it
as a onRegisterApi, but that's not imperative to this current
refactor.

I've written no new unit tests as yet, although clearly they're
possible with a lot of functions moved to Grid.js.  I don't know
what most of them do to unit test them well.