Added support to trigger debounces direclty with .flush()

Currently if one calls .flush() in tests debounce actually checks from wall time if it should reinitialize debounce and call it later. In testing this is a bit annoying since when one calls .flush() debounce just reinitialize timeout to execute it later instead of directly calling debounced functions. Commit adds info about testing debounced methods to readme and implements check to test if we are running tests and in that case debounce does not reinitialize timeout even if enough wall time has not passed.