Make Work<TInput, TOutput> implement IRegisteredWork<TInput>

Add also some unit tests to cover triggering of works.