Fix unique filter on object subkeys

The unique filter previously didn't work for nested object keys. This PR fixes that.

While I was at it, I moved `angular.isString(filterOn)` out of the loop - there's no point checking it O(n^2) times if we can just check it once.

`get` is named as per orderBy in angularjs source - https://github.com/angular/angular.js/blob/bffe6fa8a60d2b42685c56442a02e0881f00d810/src/ng/filter/orderBy.js#L102