title: $watchCollection triggers - object was not changed but comparison evaluates to non equal
body: <p>I am using Restangular to pull data from a webservice.
  After that I add a watch to the collection.
  This will trigger once and comparing newVal and oldVal also evals to non-equality but even a deep diff shows no difference.</p>
  
  <pre><code>var addWatch = function($scope) {
      $scope.$watchCollection('model.organisation', function (newVal, oldVal) {
          if(newVal !== oldVal) {
              console.log("MODEL CHANGE") // ONCE on initialization but I cannot find any difference
          }
      });
  };
  var OrganisationCrudCtrl = ['$scope', '$rootScope', '$stateParams', 'Restangular', 'StateService', function ($scope, $rootScope, $stateParams, Restangular, S
      var stateRef = StateService.get();
      $scope.model = stateRef; 
      if ($stateParams.slug) {
          Restangular.one('organisation', $stateParams.slug).get().then(function (organisation) {
              // The service stores the object for further use
              StateService.setOrganisation(organisation.data);
  
              // The watch is added
              addWatch($scope);
          });
      }
  }];
  </code></pre>