fresh implementation of wait-on
fresh implementation of wait-on

Each resource type is an observable that now returns
false initially and true when the check passes. It also
completes the observable.

An RxJS combineLatest is uses to collect the latest state
from all the observables and output status. A timeout (if set)
will generate an error, terminating all the resource observable
checks.

In rethinking the stability window, it was redone so that
the stability window only applies to file resources, to check
if the file size is changing (it is being written to). Once the
file is found and its size stabilizes for the necessary time, it
will then signal success. The other resources do not use the
stability window, once they become available they signal success.

jeffbski/wait-on