Update Chart.js with interactive feature and add table column sorting

Updated Charts.js to newer version with interactive features and some
other minor changes.
@bjarnef I presume & just to clarify that this foreach loop is to neaten up the object for the view. So it becomes item.browser etc rather than browsers.rows.Cells[0] etc...

If we do not use $scope.browsers at all anymore in controller or view, then recommend the foreach is done against response.data.ApiResult.browsers.Rows perhaps?