variadic LPUSH and RPUSH
implement BLPOP and BRPOP

- timeouts require luasocket
- not specifying one and blocking raises an error