* Fix first round of weak type errors
Done through griddle-react
* 95% done with weak type fixes
* Fix last couple of weak type errors
* Remove some lint from mithril tests
* mithril's Lifecycle is not a weak type any more
Restore the Lifecycle constraints in the rest of the definitions.
* Fix react-redux tests after #16652 broke them
* Remove package-lock.json
* Separate interfaces for each lifecycle hook
Having one required hook per interface leads to greater type safety than
having a single IController interface with all properties optional.
Namely, the IController interface will not help you if you misspell a hook
name. (A slight improvement, admittedly, but an improvement nonetheless.)
This is closer to how the typings are done for lifecycle hooks in ng2.
* Use `dtslint`
* Fix trailing whitespace
$timeout is not correctly described by ITimeoutService,
causing compile time errors like: 'TS2322:Type 'IPromise<IPromise>' is not
assignable to type 'IPromise'...'