Fix #6128 and #8150

Request Type: bug

How to reproduce: it('should not double quote dates', function() {
        $httpBackend.expect('GET', '/url?date=2014-07-15T17:30:00.000Z').respond('');
        $http({url: '/url', params: {date:new Date('2014-07-15T17:30:00.000Z')}, method: 'GET'});
      })

Currently, datetimes passed into $http.get params are wrapped in double quotes and then escaped giving urls like this: /url?date=%222014-07-15T17:30:00.000Z%22

Component(s): $http

Impact: large

Complexity: small

This issue is related to: 

**Detailed Description:**



**Other Comments:**

See comments on #6128, #8150
this is not right. toJSON doesn't have to return a string value, but we always need a string value, that's why we are doing this serialization.

how about we special case date instead? instead of your `isDefined` check on line 933 do `isDate`.

Are there other scenarios besides dates where toJSON doesn't do the right thing?