ngModelOptions debounce was failing when specifying an event with a value of 0

Was testing ngModelOptions, and noticed that the provided example
`ngModelOptions="{ updateOn: 'default blur', debounce: {'default': 500, 'blur':
0} }"` didn't function. With a little investigating I determined that the logic
operation was skipping debounce[trigger] if it was 0 (thanks JS falsiness!).

My first solution was to do this:

```javascript
var debounceDelay = ctrl.$options && (
  isObject(ctrl.$options.debounce)
    ? (isNumber(ctrl.$options.debounce[trigger]) ?
    ctrl.$options.debounce[trigger]
                                                   :
                                                   (ctrl.$options.debounce['default']
                                                   || 0))
      : ctrl.$options.debounce
      ) || 0;
```

Which hopefully makes us all cringe. Instead of adding this mess (the original
logic took me about 30 minutes to understand), I decided to unroll it into
something a bit less... terse.

I added a unit test to cover this scenario.