Better reuse of the code of the Requires decorator

RequiresMap, RequiresBest and Temporal now inherits from Requires, to share the common argument checking and the manipulation code
Accept a custom timeout parameter in @Temporal
Updated tests to take the Temporal timeout into account