Be more consistent about types

For more details see https://github.com/videojs/videojs-contrib-hls/issues/103
That is true and I agree that it is weird that the event gets packaged up in the segmentBuffer. In `drainBuffer`, we do check to make sure the value is a number so I don't think there's a logic error here. It is quite detached from the origin of `offset` though and that it is definitely confusing. Rather than wrapping the registration of `fillBuffer` in an anonymous function, how would you feel about something like this early in `fillBuffer`:

```js
offset = typeof offset === 'number'? offset || 0;
```