message: fix(fromEventPattern): improve typings for fromEventPattern
diff: import { Observable } from '../Observable';
  import { isArray } from '../util/isArray';
  import { isFunction } from '../util/isFunction';
  -import { fromEvent } from './fromEvent';
  +import { NodeEventHandler } from './fromEvent';
  import { map } from '../operators/map';
  /* tslint:disable:max-line-length */
  -export function fromEventPattern<T>(addHandler: (handler: Function) => any, removeHandler?: (handler: Function, signal?: any) => void): Observable<T>;
  +export function fromEventPattern<T>(addHandler: (handler: NodeEventHandler) => any, removeHandler?: (handler: NodeEventHandler, signal?: any) => void): Observable<T>;
  /** @deprecated resultSelector no longer supported, pipe to map instead */
  -export function fromEventPattern<T>(addHandler: (handler: Function) => any, removeHandler?: (handler: Function, signal?: any) => void, resultSelector?: (...args: any[]) => T): Observable<T>;
  +export function fromEventPattern<T>(addHandler: (handler: NodeEventHandler) => any, removeHandler?: (handler: NodeEventHandler, signal?: any) => void, resultSelector?: (...args: any[]) => T): Observable<T>;
  /* tslint:enable:max-line-length */
  /**
  @@ -132,8 +132,8 @@ export function fromEventPattern<T>(addHandler: (handler: Function) => any, remo
  * @owner Observable
  */
  -export function fromEventPattern<T>(addHandler: (handler: Function) => any,
  - removeHandler?: (handler: Function, signal?: any) => void,
  +export function fromEventPattern<T>(addHandler: (handler: NodeEventHandler) => any,
  + removeHandler?: (handler: NodeEventHandler, signal?: any) => void,
  resultSelector?: (...args: any[]) => T): Observable<T | T[]> {
  if (resultSelector) {
  