test($httpBackend): use browser.defer mock instead of fakeTimeout
fix($httpBackend): allow canceling request with falsy timeoutId

httpBackend with ngMock browser.defer could never cancel the first deferredFn
because the timeoutId returned by defer for the first fn is a zero value.
Compare timeoutId with undefined fix this issue.

Closes #10177
docs($compile): fix grammar

Closes #10204