Improve IE 10 pointer capture

IE 10 uses a concept of pointer capture to allow elements to continue
receiving events when the pointer moves outside them; it turns out
pointer capture isn't exclusive, so always request it to prevent
cancel/end events from being lost in edge cases.  Fixes loss of
responsiveness on IE 10.
Fire scrollstart event for animated scrollBy() and scrollTo() calls

Improve scrollTo() logic (which also handles scrollBy) to fire the
scrollStart event if an animated scroll is being triggered, to allow
the UI to react appropriately if necessary.  Also improve smartness of
_hasBeenScrolled tracking to only record actual scrolls within
scrollTo().
Add lax whitespace to the jslint options

Unconvinced by anti-tab arguments
Add support for reachedstart/reachedend events (#15)

Pull #15 requested reachedstart and reachedend events, together with an
example showing their use; this commit re-implements those events in a
different manner to allow flings to correctly fire the events at
approximately the right time.
Add support for alwaysScroll instance option

Allow use of an alwaysScroll instance option to force the scroller to
always allow scrolling/bouncing, even if there would be insufficient
content to normally trigger scrolling.  Roughly equivalent to changing
overflow: auto to overflow: scroll.