add a Delay intent, with default implementation in twisted

also start using 'characteristic', plus other random cleanups.